在zend framework 2查询中选择四个表

时间:2014-09-02 06:11:38

标签: mysql zend-framework2

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'));

但是查询不起作用,我希望将所有四个表联合起来

2 个答案:

答案 0 :(得分:0)

答案 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;