在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中文網其他相關文章!