MySQL - 根据最新日期过滤表

时间:2013-04-19 10:23:22

标签: mysql sql wamp

我在stackoverflow上的第一篇文章请温柔!

我有一个MySQL(5.5.24)数据库(WAMP设置),其中包含一个包含此类记录的表

Person_ID     R_Date    

137           2013-01-01    
137           2013-02-01
137           2013-03-15  
168           2013-01-01
168           2013-02-01
168           2013-03-21
172           2013-01-01
172           2013-02-01
172           2013-03-27

但是我想使用最新/当前的R_Date为每个Person_ID创建一条记录。

所以结果看起来像这样:

Person_ID    R_Date

137          2013-03-15
168          2013-03-21
172          2013-02-27

我很难找到答案,因为我不确定术语,它可能非常简单。

使用PHP可以获得这个结果虽然循环结合了多个MySQL查询,但是如果可能的话,我会使用纯MySQL解决方案。 也许我所追求的结果可以通过子查询实现?

感谢

3 个答案:

答案 0 :(得分:1)

SELECT Person_ID, MAX(R_Date) as 'R_Date' FROM TableName GROUP BY Person_ID

答案 1 :(得分:0)

SELECT *
FROM PERSONTABLE a
WHERE R_Date = ( SELECT MAX(R_Date) 
                 FROM PERSONTABLE b 
                 WHERE a.Person_ID = b.Person_ID
               )

答案 2 :(得分:0)

SELECT Person_ID, MAX(R_Date) FROM <YourTable> GROUP BY Person_ID