我將如何選擇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 *'放在任何包裝查詢中。 – Zenexer 2014-01-27 00:20:04