以下是一个示例表:
ID time data type
0 0100 xyz 0
1 0200 xyz 1
2 0300 xyz 1
3 0400 xyz 2
4 0200 xyz 0
5 0500 xyz 2
6 0300 xyz 0
根据时间戳添加数据,以便每种类型的最后一个都有最新的时间戳。
我希望SELECT的结果是:
ID time data type
5 0500 xyz 2
2 0300 xyz 1
6 0300 xyz 0
所以返回每个'type'的最后一个。
我可以使用三个SELECT语句完成上述操作,如下所示:
SELECT time, data, type FROM table WHERE type=0 ORDER BY time DESC LIMIT 1
SELECT time, data, type FROM table WHERE type=1 ORDER BY time DESC LIMIT 1
SELECT time, data, type FROM table WHERE type=2 ORDER BY time DESC LIMIT 1
有没有办法将上述三个SELECT语句合并为一个?
任何帮助表示感谢。
克里斯
答案 0 :(得分:1)
select m.ID, m.time, m.data, m.type
from (
select type, max(time) as MaxTime
from MyTable
group by type
) mm
inner join MyTable on mm.type = m.type
and mm.MaxTime = m.time