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
.