具有上次日期的同一用户的SQL查询

时间:2016-07-05 23:29:47

标签: mysql sql

我有一张包含以下数据的表格。 ID,日期和类型都是主键。 ID是人,类型是工作类型。

id     date     Type
--------------------------
6   |  2011   |  2
6   |  2012   |  2
6   |  2012   |  3
6   |  2012   |  5
7   |  2013   |  1
7   |  2016   |  1
etc..

我想创建一个查询,该查询将显示具有差异类型的id 6,并且如果相同ID具有相同类型的拖曳行,则采用最后日期。 结果应该与此相同。

id     date     Type
--------------------------
6   |  2012   |  2
6   |  2012   |  3
6   |  2012   |  5
7   |  2016   |  1
etc..

2 个答案:

答案 0 :(得分:0)

您可以使用相关子查询执行此操作:

select t.*
from t
where t.date = (select max(t2.date) from t t2 where t2.id = t.id and t2.type = t.type);

答案 1 :(得分:0)

另一种方法:

select a.id, b.date, a.type
 from 
(
    select distinct id, type 
    From Test1 
) a
INNER JOIN 
(
    select distinct id, max(date) date
    From Test1 
    group by id
) b 
on a.id = b.id