Mysql
 sql >> Database >  >> RDS >> Mysql

Come posso creare una query UNION con ORDER BY e GROUP BY nel generatore di query di Kohana?

Le clausole qui sono applicate dalla prima query impostata in union() metodo, quindi invertire dove li stai mettendo:

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

Puoi anche rimuovere quel superfluo ->limit(10) da $names poiché verrà ignorato e sostituito da quello in $query1 .