Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment créer une requête UNION avec ORDER BY et GROUP BY dans le générateur de requêtes de Kohana ?

Les clauses ici sont appliquées à partir de la première requête configurée dans union() méthode, il suffit donc d'inverser l'endroit où vous les placez :

$query1 = DB::select('p.name')
              ->from(array('person', 'p'))
              ->where('p.organization', 'LIKE', 'foo%')
              ->group_by('name')
              ->order_by('name')
              ->limit(10);

$names = DB::select('sh.name')
              ->union($query1, FALSE)
              ->from(array('stakeholder', 'sh'))
              ->where('sh.organization', 'LIKE', 'foo%')
              ->execute()
              ->as_array();

Vous pouvez également supprimer ce superflu ->limit(10) de $names puisqu'il sera ignoré et remplacé par celui de $query1 .