获取所有的最近的2项,但是从2个不同的类别
问题描述:
我在MySQL/SQL一个新手,我有一个表是这样的:获取所有的最近的2项,但是从2个不同的类别
id | cat | datetime | ....... 10 more columns
10 | 20 | 10-12-31 00:00 | .....
64 | 12 | 10-10-25 10:00 | .....
39 | 12 | 10-11-21 08:00 | .....
21 | 20 | 10-12-30 20:00 | .....
95 | 21 | 10-09-16 00:00 | .....
查询的结果将是:
id | cat | datetime | ....... 10 more columns
10 | 20 | 10-12-31 00:00 | .....
39 | 12 | 10-11-21 08:00 | .....
我都试过,但它不工作(我知道它不会):
SELECT *, max(datetime) FROM table GROUP BY cat LIMIT 2
答
SELECT id, cat, datetime, ...
FROM `table`
INNER JOIN (
SELECT cat, MAX(datetime) AS mdate
FROM `table`
GROUP BY cat
ORDER BY mdate DESC
LIMIT 2
) AS t
ON `table`.cat = t.cat AND `table`.datetime = t.mdate;
可能有更有效的方法,但这会起作用。
您需要`订购mdate DESC` – ajreal 2011-02-10 15:16:36