Существует не прямой способ получить желаемый 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;
В ZF2, вы 'объединить()' за выполнение 'union'. Проверьте это. –