SELECT * FROM tab1 union select * from tab2 union select * from tab3 union select * from tab4;
我想将此查询转换为ZF2查询
我试过
$sql->select()
->from(array('a' => 'tab1', 'b' => 'tab2', 'c' => 'tab3', 'd' => 'tab4'));
但是查询不起作用,我希望将所有四个表联合起来
答案 0 :(得分:0)
你可以在这里找到你的解决方案
http://framework.zend.com/manual/1.12/en/zend.db.select.html#zend.db.select.building.union
答案 1 :(得分:0)
没有直接的方法来使用combine()
形成所需的sql查询。
但是有一个方法可以获得相同的结果集。
试试这个 -
$select1 = $sql->select('tab1');
$select2 = $sql->select('tab2');
$select1->combine($select2);
$select3 = $sql->select('tab3');
$selectall3 = $sql->select();
$selectall3->from(array('sel1and2' => $select1));
$selectall3->combine($select3);
$select4 = $sql->select('tab4');
$selectall4 = $sql->select();
$selectall4->from(array('sel1and2and3' => $selectall3));
$selectall4->combine($select4);
现在使用$selectall4
执行语句。
这将为您提供与所需查询相同的结果 -
SELECT * FROM tab1
union select * from tab2
union select * from tab3
union select * from tab4;