首页 > 数据库 > mysql教程 > 如何使用 Laravel Eloquent 获取每个卖家 ID 的最新行?

如何使用 Laravel Eloquent 获取每个卖家 ID 的最新行?

Linda Hamilton
发布: 2024-11-29 08:47:09
原创
978 人浏览过

How to Get the Most Recent Row for Each Seller ID Using Laravel Eloquent?

如何使用 Laravel Eloquent 为每个 Seller_ID 选择最新行

问题

您有一个包含 seller_id 和created_at 列数据的表。您只想检索每个不同 seller_id 的最新行。

解决方案

使用 Laravel Eloquent 的查询构建器,您可以通过使用左连接和 whereNull 条件来实现此目的。操作方法如下:

$subquery = DB::table('snapshot')
    ->where('seller_id', '=', 's1.seller_id')
    ->whereRaw('s.created_at < s1.created_at');

$query = DB::table('snapshot as s')
    ->select('s.*')
    ->leftJoinSub($subquery, 's1', function ($join) {
        $join->on('s.seller_id', '=', 's1.seller_id');
    })
    ->whereNull('s1.seller_id')
    ->get();
登录后复制

在此查询中:

  1. 子查询标识快照表中 create_at 时间戳晚于当前行的所有行。
  2. 左连接将主表(s)与子查询结果(s1)结合起来。
  3. whereNull条件消除子查询中存在相应条目的行。这有效地过滤掉了除每个 seller_id 的最新行之外的所有行。

通过执行此查询,您将获得快照表中每个不同 seller_id 的最新行的集合。

以上是如何使用 Laravel Eloquent 获取每个卖家 ID 的最新行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板