Laravel Eloquent: Select Rows with Maximum Created_at
在 Laravel Eloquent 中,你可能会遇到需要选择所有具有最大值的行的场景表中每个唯一的 seller_id 的created_at 值。以下是实现此目的的方法:
使用原始 SQL 查询
一种方法是使用原始 SQL 查询,这在某些情况下可能更有效:
select s.*
from snapshot s
left join snapshot s1 on s.seller_id = s1.seller_id
and s.created_at 使用查询生成器
或者,您可以利用 Laravel 的查询生成器实现更加面向对象的方法:
DB::table('snapshot as s')
->select('s.*')
->leftJoin('snapshot as s1', function ($join) {
$join->on('s.seller_id', '=', 's1.seller_id')
->whereRaw('s.created_at whereNull('s1.seller_id')
->get();
这两种方法都会返回代表快照表中每个唯一 seller_id 的最新行的对象集合。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3