首页  >  文章  >  后端开发  >  如何在 Laravel Eloquent 中检索每个卖家的最新行?

如何在 Laravel Eloquent 中检索每个卖家的最新行?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-25 16:15:02803浏览

How to Retrieve the Latest Row for Each Seller in Laravel Eloquent?

在 Laravel Eloquent 中检索每个卖家 ID 的最新行

本文解决了在 Laravel Eloquent 中检索每个唯一卖家的最新行的挑战一个数据库表。我们将探索使用 Laravel Eloquent ORM 来实现这一目标的解决方案。

给定的表包含销售数据,包括卖家 ID、金额和创建时间戳。要获取特定卖家的最新行,查询可以编写为:

<code class="php">$sales = Snapshot::where('seller_id', '=', 15)
->orderBy('created_at', 'DESC')
->first();</code>

为了扩展此功能以检索所有卖家的最新行,我们采用更高级的查询。以下查询使用子查询来识别每个卖家的最新行:

<code class="sql">select s.*
from snapshot s
left join snapshot s1 on s.seller_id = s1.seller_id
and s.created_at < s1.created_at
where s1.seller_id is null

要在 Laravel 的查询构建器中使用此查询,可以实现以下代码:

<code class="php">DB::table('snapshot as s')
->select('s.*')
->leftJoin('snapshot as s1', function ($join) {
    $join->on('s.seller_id', '=', 's1.seller_id')
         ->whereRaw(DB::raw('s.created_at < s1.created_at'));
})
->whereNull('s1.seller_id')
->get();</code>

通过通过此解决方案,您可以高效地检索数据库表中每个卖家的最新行,从而方便地访问应用程序的最新数据。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn