首页 >数据库 >mysql教程 >如何在 Laravel Eloquent 中为每个卖家选择最新的促销活动?

如何在 Laravel Eloquent 中为每个卖家选择最新的促销活动?

Susan Sarandon
Susan Sarandon原创
2024-11-30 06:02:131049浏览

How to Select the Latest Sale for Each Seller in Laravel Eloquent?

在 Laravel Eloquent 中为每个 seller_id 选择具有最大created_at 值的所有行

您的表包含销售交易列表,其中列包括 id、 seller_id、金额和创建时间。要检索每个唯一 seller_id 的最新行,您可以采用以下技术:

使用 SQL 查询

要直接执行自定义 SQL 查询,您可以在 Laravel 中使用数据库外观:

$latestSales = DB::select(DB::raw('
    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
'));

使用 Eloquent Query Builder

或者,您可以利用 Laravel 的查询生成器来实现相同的结果:

$latestSales = 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 < s1.created_at');
    })
    ->whereNull('s1.seller_id')
    ->get();

这两种技术都会为所有唯一的 seller_id 值获取具有最大created_at值的所有行你的桌子。

以上是如何在 Laravel Eloquent 中为每个卖家选择最新的促销活动?的详细内容。更多信息请关注PHP中文网其他相关文章!

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