Reputation: 23
Im trying to translate this query from mysql
SELECT usuario_cia.idusuario_cia,usuario_cia.nombre,usuario_cia.fkcompania,
mobil_gps.idmobil_gps, mobil_gps.fkmobil,MAX(mobil_gps.fechahora), mobil_gps.bateria
FROM usuario_cia
INNER JOIN mobil_gps ON mobil_gps.fkusuario= usuario_cia.idusuario_cia
WHERE usuario_cia.fkcompania=24
GROUP BY idusuario_cia
ORDER BY mobil_gps.fechahora DESC;
to a function in my Laravel model with Query Builder, I have a big problem with the max, rigth now I have this:
$datos=$query->join('mobil_gps','mobil_gps.fkusuario','usuario_cia.idusuario_cia')
->select( 'usuario_cia.idusuario_cia','usuario_cia.nombre','usuario_cia.fkcompania',
\DB::raw('mobil_gps.idmobil_gps'),\DB::raw('mobil_gps.fechahora'), \DB::raw('mobil_gps.fkmobil'),\DB::raw('mobil_gps.bateria'))
->where('usuario_cia.fkcompania', $id_compania)
//->max(\DB::raw('mobil_gps.fechahora'))
->groupBy('usuario_cia.idusuario_cia')
->orderBy(\DB::raw('mobil_gps.fechahora'), 'desc')
->get()->toArray();
but if I uncoment the max part everithing crash.
Could u give me any suggestion?
Upvotes: 2
Views: 233
Reputation: 25906
You have to use MAX()
in select()
:
->select(..., \DB::raw('MAX(mobil_gps.fechahora)'), ...)
This is also the only place in your query where you need DB::raw()
.
Upvotes: 1