首頁 >資料庫 >mysql教程 >如何在 Laravel Eloquent 中為每個賣家選擇最新的促銷活動?

如何在 Laravel Eloquent 中為每個賣家選擇最新的促銷活動?

Susan Sarandon
Susan Sarandon原創
2024-11-30 06:02:13975瀏覽

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