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