繁体   English   中英

使用Laravel Eloquent ORM获取GROUP的最新值

[英]Get latest values in GROUP BY using Laravel Eloquent ORM

我试图了解Laravel的口才ORM是如何工作的,并且正在查看以下MySQL查询:

SELECT id, name, date FROM tablename GROUP BY name ORDER BY date

使用GROUP BY总是返回name的最早值。 有没有办法返回最新值呢?

尝试以下代码,

Tablename::select('id', 'name', DB::raw('max(date) as latest_date'))
 ->groupBy('name')
 ->orderBy('latest_date')
 ->get()

这是一个有效的SQL查询,只能通过a.id = b.id获得唯一的最新结果-如果您想使用唯一的名称,则它将为a.name = b.name

SELECT DISTINCT a.*
FROM tablename a
LEFT JOIN tablename b ON a.id = b.id
AND a.date < b.date
WHERE b.date IS NULL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM