簡體   English   中英

使用Laravel Eloquent ORM獲取GROUP的最新值

[英]Get latest values in GROUP BY using Laravel Eloquent ORM

我試圖了解Laravel的口才ORM是如何工作的,並且正在查看以下MySQL查詢:

SELECT id, name, date FROM tablename GROUP BY name ORDER BY date

使用GROUP BY總是返回name的最早值。 有沒有辦法返回最新值呢?

嘗試以下代碼,

Tablename::select('id', 'name', DB::raw('max(date) as latest_date'))
 ->groupBy('name')
 ->orderBy('latest_date')
 ->get()

這是一個有效的SQL查詢,只能通過a.id = b.id獲得唯一的最新結果-如果您想使用唯一的名稱,則它將為a.name = b.name

SELECT DISTINCT a.*
FROM tablename a
LEFT JOIN tablename b ON a.id = b.id
AND a.date < b.date
WHERE b.date IS NULL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM