我有这个问题:
SELECT history.trackid, tracklist.artist, tracklist.event, tracklist.data, history.date
FROM history JOIN tracklist ON history.trackid=tracklist.trackid
GROUP BY trackid
ORDER BY history.date DESC
但是当我按历史
分组时,我想返回最近的trackid
(到date
)。
尝试使用 GROUP BY
和 ORDER BY DESC
,但不是最新的。我哪里错了?
最佳答案
之所以没有按最近排序,是因为 GROUP BY
创建了一个聚合结果。你可以试试:
SELECT h.trackid, t.artist, t.event, t.data
FROM history AS h
JOIN tracklist AS t
ON h.trackid = t.trackid
GROUP BY h.trackid
ORDER BY MAX(h.date) DESC
因为您已经在聚合结果,所以 MAX(history.date)
应该返回每个组的最大(或最近)日期。
关于mysql - 如何使用 group by 返回最近的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5819989/