2013-05-14 92 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();