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