0

我在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 设置 1 条记录。

所以结果看起来像这样:

Person_ID    R_Date

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

由于不确定术语,我很难找到答案,这可能非常简单。

可以使用 PHP While 循环与多个 MySQL 查询相结合来获得此结果,但如果可能的话,我会使用纯 MySQL 解决方案。也许我追求的结果可以通过子查询来实现?

谢谢

4

3 回答 3

1
SELECT Person_ID, MAX(R_Date) as 'R_Date' FROM TableName GROUP BY Person_ID
于 2013-04-19T10:30:33.800 回答
0
SELECT *
FROM PERSONTABLE a
WHERE R_Date = ( SELECT MAX(R_Date) 
                 FROM PERSONTABLE b 
                 WHERE a.Person_ID = b.Person_ID
               )
于 2013-04-19T10:26:25.850 回答
0
SELECT Person_ID, MAX(R_Date) FROM <YourTable> GROUP BY Person_ID
于 2013-04-19T10:27:26.920 回答