クエリでエラーが発生します。質問は次のとおりです。結合をチェーンできますか?
最初の結合はプライマリテーブルへの結合ですが、2番目の結合はプライマリテーブルに結合されたテーブルへの結合です。これはクエリです:
$query = $this->getDbTable()->select()
->from(array('ca' => 'contracts_allotment'),
array('id',
'contracts_rooms_id' => new Zend_Db_Expr("CONCAT(room_type_desc, '-', room_characteristics_desc)")
))
->join(array('cr' => 'contracts_rooms'),
'ca.contract_rooms_id = cr.id',
array())
->join(array('rt' => 'room_types'),
'cr.room_id = rt.id',
array('room_type_desc'))
->join(array('rc' => 'room_characteristics'),
'cr.char_id = rc.id',
array('room_characteristics_desc'))
->where('contract_id = ?', $contractId);
var_dump($this->getDbTable()->fetchAll($query));die;
私が得ている:
選択クエリは別のテーブルと結合できません」
エラーはZend/Db/Table/Select::assemble()
ここにいくつかの内部アセンブル()があります:
// Check each column to ensure it only references the primary table
if ($column) {
if (!isset($from[$table]) || $from[$table]['tableName'] != $primary) {
var_dump($from[$table]['tableName'], $primary);die;
require_once 'Zend/Db/Table/Select/Exception.php';
throw new Zend_Db_Table_Select_Exception('Select query cannot join with another table');
}
}
var_dump()
プリント:
string(10) "room_types" string(19) "contracts_allotment"
何か案が?