我有一个像这样的MySQL表:
id | day | item
---------------
1 | 1 | A
1 | 2 | B
1 | 3 | A
2 | 1 | C
2 | 2 | C
2 | 5 | B
3 | 6 | A
3 | 7 | C
我希望每天获得每个ID的最后一项。所以输出将是这样的:
id | day | item
---------------
1 | 3 | A
2 | 5 | B
3 | 7 | C
实现这一目标的最佳方法是什么?
我知道当所有day
的最后一个id
相同时如何执行此操作,但在每个id
可能的情况下我不知道如何执行此操作有一个不同的最后一天。
答案 0 :(得分:2)
这应该有效:
select table.* from table
join (select id, max(day) as day from table group by id)
as m on m.id = table.id and m.day = table.day