我的桌子是:
ID | 家 | 约会时间 | 播放器 | 资源 |
---|---|---|---|---|
1 | 10 | 2009 年 4 月 3 日 | 约翰 | 399 |
2 | 11 | 2009 年 4 月 3 日 | 朱丽叶 | 244 |
5 | 12 | 2009 年 4 月 3 日 | 硼砂 | 555 |
3 | 10 | 2009 年 3 月 3 日 | 约翰 | 300 |
4 | 11 | 2009 年 3 月 3 日 | 朱丽叶 | 200 |
6 | 12 | 2009 年 3 月 3 日 | 硼砂 | 500 |
7 | 13 | 24/12/2008 | 硼砂 | 600 |
8 | 13 | 2009 年 1 月 1 日 | 硼砂 | 700 |
我需要选择每个不同的home
持有最大值的datetime
.
结果将是:
ID | 家 | 约会时间 | 播放器 | 资源 |
---|---|---|---|---|
1 | 10 | 2009 年 4 月 3 日 | 约翰 | 399 |
2 | 11 | 2009 年 4 月 3 日 | 朱丽叶 | 244 |
5 | 12 | 2009 年 4 月 3 日 | 硼砂 | 555 |
8 | 13 | 2009 年 1 月 1 日 | 硼砂 | 700 |
我试过了:
-- 1 ..by the MySQL manual:
SELECT DISTINCT
home,
id,
datetime AS dt,
player,
resource
FROM topten t1
WHERE datetime = (SELECT
MAX(t2.datetime)
FROM topten t2
GROUP BY home)
GROUP BY datetime
ORDER BY datetime DESC
不工作。结果集有 130 行,尽管数据库有 187 行。结果包括一些重复的home
.
-- 2 ..join
SELECT
s1.id,
s1.home,
s1.datetime,
s1.player,
s1.resource
FROM topten s1
JOIN (SELECT
id,
MAX(datetime) AS dt
FROM topten
GROUP BY id) AS s2
ON s1.id = s2.id
ORDER BY datetime
没有。给出所有记录。
-- 3 ..something exotic:
有各种结果。