使用连接,最大 + 组按顺序按查询生成器 Laravel



我试图从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 模型中的函数,我对最大值有一个大问题,现在我有这个:

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

但是如果我解开最大部分,就会崩溃。

你能给我任何建议吗?

您必须在select()中使用MAX()

->select(..., DB::raw('MAX(mobil_gps.fechahora)'), ...)

这也是查询中唯一需要DB::raw()的地方。

相关内容

  • 没有找到相关文章

最新更新