如何获得加入两个表的最新日期记录?

时间:2011-06-08 03:58:33

标签: mysql sql

第一张表:状态

ID               Status        date
1                PRO           10-02-2010
1                LWR           8-06-2011
1                Active      10-06-2011
2                PRO          10-02-2010
2                LWR           8-06-2011
2                PRO        10-06-2011
3                PRO           10-02-2010
3                LWR           8-06-2011
3                APS        10-06-2011

第二张tabe:个人资料

ID                NAME
1                  Suba
2                  Jhon
3                  Felix

我期待的输出

1          Suba      Active        10-06-2011
2          Jhon      PRO           10-06-2011
3          Felix     APS           10-06-2011

请解释如何获得最大日期值记录

3 个答案:

答案 0 :(得分:5)

使用:

SELECT a.*
  FROM YOUR_TABLE a
  JOIN (SELECT t.id,
               MAX(t.date) AS max_date
          FROM YOUR_TABLE t
      GROUP BY t.id) b ON b.id = a.id
                      AND b.max_date = a.date

答案 1 :(得分:2)

你在那里错过了一张桌子。我只看到一个,你不需要加入任何东西来获得你想要的结果。

SELECT ID, Status, MAX(date) 
FROM `table` 
WHERE status='active' /* optional */
GROUP BY ID, Status

此外,您显示的日期与sql server通常格式化日期的方式不匹配。你确定这是一个datetime专栏吗?如果不是,它应该是。在做其他任何事情之前修复它。

答案 2 :(得分:0)

SELECT *, max(date) as max_date FROM `table` order by max_date desc;