2013-05-14 52 views
0

我必須使用Zend_Db_Select對象此SQL從多表做一個選擇:添加多表中從()Zend_Db_Select對象

SELECT t1.id,t2.ids, t3.uid 
FROM table1 t1,table2 t2, table3 t3 

這是所使用的代碼:

$subQuery = $this->getDbTable()->select()->setIntegrityCheck (false) 
->from(array('t1'=>'table1','t2'=>'table2','t3'=>'table3'),array('t1.id','t2.ids','t3.uid')) 
->query() 
->fetchAll(); 

所以我有消息錯誤說,t2.ids不在列表 ,因爲zend_db_select只取第一個表

任何解決此問題的解決方案? thaks

+0

有't1.id','t2.ids'和't3.uid'之間的關係?也許你可以重新編寫基於JOIN的SQL查詢。 – 2013-05-14 13:14:43

+0

表之間沒有關係 – NoOneElse 2013-05-14 13:52:23

+0

那麼,在這種情況下,你總是可以執行你的[原始MySQL查詢](http://stackoverflow.com/questions/6161370/raw-sql-query-with-zend-framework)。 – 2013-05-14 14:29:16

回答

0

您可以使用一個交叉連接:

$subQuery = $this->getDbTable()->select()->setIntegrityCheck (false) 
->from(array('t1'=>'table1'),array('t1.id')) 
->joinCross(array('t2'=>'table2'),array('t2.ids')) 
->joinCross(array('t3'=>'table3'),array('t3.uid')) 
->query() 
->fetchAll(); 
相關問題