2014-09-02 4 views
0
SELECT * FROM tab1 union select * from tab2 union select * from tab3 union select * from tab4; 

Я хочу, чтобы преобразовать этот запрос в ZF2 запросвыбрать четыре таблицы в Zend Framework 2 запроса

Я попытался

$sql->select() 
    ->from(array('a' => 'tab1', 'b' => 'tab2', 'c' => 'tab3', 'd' => 'tab4')); 

но запрос не работает, я хочу, чтобы союз все четыре таблицы

+1

В ZF2, вы 'объединить()' за выполнение 'union'. Проверьте это. –

ответ

0

Существует не прямой способ получить желаемый sql-запрос, сформированный с использованием combine().

Но есть работа вокруг, чтобы получить тот же набор результатов.

Попробуйте это -

$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;