MySQL查询追加最新结果

时间:2012-03-05 11:29:56

标签: mysql max

我有两个MySQL表,想从table2中选择最高值的结果,并将它们附加到表1。

表1包含ID,MSISDN(14位数字)

表2包含ID,MSISDN,field2,日期

我想返回表1中所有MSISDN的列表,以及table2.field2和table2.date的结果,其中table2.date是匹配的MSISDN的最大值。

我该怎么做?我知道我需要使用MAX,但我不知道如何构造子查询来为table2.field添加正确的结果。

1 个答案:

答案 0 :(得分:1)

通常,您可以通过

执行此操作
  • 创建包含每个ID的最大日期的子选择
  • 将此子选项与原始表连接以返回其他列

请注意如果有两个相同的(MSISDN,日期)记录,则会返回它们。

SQL Server

SELECT  t1.MSISDN
        , t2.field2
        , t2.date
FROM    Table1 AS t1
        INNER JOIN Table2 AS t2 ON t2.MSISDN = t1.MSISDN
        INNER JOIN (
          SELECT  MAX(date) AS date, MSISDN
          FROM    Table2
          GROUP BY
                  MSISDN
        ) t2max ON t2max.MSISDN = t2.MSISDN
                   AND t2max.date = t2.date