ホームページ >データベース >mysql チュートリアル >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 サイトの他の関連記事を参照してください。