seller_id 列と created_at 列を持つデータを含むテーブルがあります。個別のseller_idごとに最新の行のみを取得したいとします。
Laravel Eloquentのクエリビルダーを使用すると、左結合とwhereNull条件を採用することでこれを実現できます。方法は次のとおりです:
$subquery = DB::table('snapshot') ->where('seller_id', '=', 's1.seller_id') ->whereRaw('s.created_at < s1.created_at'); $query = DB::table('snapshot as s') ->select('s.*') ->leftJoinSub($subquery, 's1', function ($join) { $join->on('s.seller_id', '=', 's1.seller_id'); }) ->whereNull('s1.seller_id') ->get();
このクエリ内:
このクエリを実行すると、スナップショット テーブル内の個別の sell_id ごとに最新の行のコレクションが取得されます。
以上がLaravel Eloquentを使用して各販売者IDの最新の行を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。