Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como faço para construir uma consulta UNION com ORDER BY e GROUP BY no construtor de consultas do Kohana?


As cláusulas aqui são aplicadas a partir da primeira consulta configurada no union() método, então apenas inverta onde você os está colocando:
$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();

Você também pode remover esse ->limit(10) supérfluo de $names uma vez que será ignorado e substituído por aquele em $query1 .