Petit mémo directement prit de la documentation officielle du framework Zend pour combiner les résultats de deux requêtes en utilisant UNION avec Zend_Db_Select :
$sql1 = $db->select(); $sql2 = "SELECT ..."; $select = $db->select() ->union(array($sql1, $sql2)) ->order("id");
Pour un UNION ALL, il suffit de passer la constante Zend_Db_Select::SQL_UNION_ALL
en second paramètre :
$select = $db->select() ->union(array($sql1, $sql2), Zend_Db_Select::SQL_UNION_ALL) ->order("id");
Et en passant, pour aider à débugguer un peu les requêtes Zend_Db_Select
, il est possible d’utiliser la méthode __toString()
pour afficher la requête exécutée. En exemple, il suffit d’ajouter ceci en fin du code ci-dessus :
echo $select->__toString();