【发布时间】:2012-07-27 21:20:52
【问题描述】:
我的桌子titles 是这样的
id |group|date |title
---+-----+--------------------+--------
1 |1 |2012-07-26 18:59:30 | Title 1
2 |1 |2012-07-26 19:01:20 | Title 2
3 |2 |2012-07-26 19:18:15 | Title 3
4 |2 |2012-07-26 20:09:28 | Title 4
5 |2 |2012-07-26 23:59:52 | Title 5
我需要按日期降序排列的每个组的最新结果。像这样的
id |group|date |title
---+-----+--------------------+--------
5 |2 |2012-07-26 23:59:52 | Title 5
2 |1 |2012-07-26 19:01:20 | Title 2
我试过了
SELECT *
FROM `titles`
GROUP BY `group`
ORDER BY MAX( `date` ) DESC
但我从小组中获得了第一批结果。像这样
id |group|date |title
---+-----+--------------------+--------
3 |2 |2012-07-26 18:59:30 | Title 3
1 |1 |2012-07-26 19:18:15 | Title 1
我做错了什么? 如果我使用 LEFT JOIN,这个查询会更复杂吗?
【问题讨论】:
-
如果您只需要两列(例如 ID 及其最新时间戳),这可能有效:stackoverflow.com/a/4448536/722036。它比在包含数百万行的大表上使用子查询更快。
标签: mysql group-by sql-order-by left-join max