ホームページ >データベース >mysql チュートリアル >Laravel Eloquentで各販売者の最新のセールを選択するにはどうすればよいですか?

Laravel Eloquentで各販売者の最新のセールを選択するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-30 06:02:13989ブラウズ

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

Laravel Eloquent で各 sell_id の最大 created_at 値を持つすべての行を選択する

テーブルには、id を含む列を持つ販売トランザクションのリストが含まれています。 sell_id、amount、created_at。一意の sell_id ごとに最新の行を取得するには、次の手法を使用できます。

SQL クエリの使用

カスタム SQL クエリを直接実行するには、次の方法があります。 Laravel で DB ファサードを使用する:

$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();

どちらの手法も、すべての一意の sell_id 値に対して最大の created_at 値を持つすべての行をフェッチします。あなたのテーブル。

以上がLaravel Eloquentで各販売者の最新のセールを選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。