Zend : Utiliser UNION dans une requête

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *