【发布时间】:2013-02-16 20:42:57
【问题描述】:
如何为 MySQL 中的每个组选择第一行(按日期时间排序)?
我试过了,我做到了:
SELECT *
FROM `cats`
WHERE `war_id` = 0
AND `eyes_color` = 'green'
AND `id` IN
(SELECT `id` FROM
(SELECT * FROM `cats` ORDER BY `date_last_fought` DESC) AS t
GROUP BY `war_id`, `n_of_medals`)
有点效果,但我不确定它是否是有史以来最好的。
你认为我可以简化这个吗?
【问题讨论】:
-
这实际上似乎是最好的选择。把它变成同一张桌子上的连接没有多大意义。但是,您应该将
SELECT `id`放在最里面的查询中,并将SELECT *放在任何包装查询中。