」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Laravel Eloquent 中為每個唯一的“seller_id”選擇具有最大“created_at”的行?

如何在 Laravel Eloquent 中為每個唯一的“seller_id”選擇具有最大“created_at”的行?

發佈於2024-11-06
瀏覽:186

How to Select Rows with the Maximum `created_at` for Each Unique `seller_id` in Laravel Eloquent?

Laravel Eloquent: Select Rows with Maximum Created_at

在Laravel Eloquent 中,你可能會遇到需要選擇所有具有最大值的行的場景表中每個唯一的seller_id 的created_at 值。以下是實現此目的的方法:

使用原始SQL 查詢

一種方法是使用原始SQL 查詢,這在某些情況下可能更有效:

select s.*
from snapshot s
left join snapshot s1 on s.seller_id = s1.seller_id
and s.created_at 

使用查詢產生器

或者,您可以利用Laravel 的查詢產生器實作更物件導向的方法:

 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 whereNull('s1.seller_id')
  ->get();

這兩種方法都會傳回代表快照表中每個唯一 seller_id 的最新行的物件集合。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3