我试图从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;
使用查询生成器在我的Laravel模型中的一个函数,我对max,rigth有一个很大的问题,现在我有了这个:
$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();
但是如果我解开最大部分而且会崩溃。
你可以给我任何建议吗?答案 0 :(得分:1)
您必须在MAX()
中使用select()
:
->select(..., \DB::raw('MAX(mobil_gps.fechahora)'), ...)
这也是您的查询中仅 的地方,您需要DB::raw()
。