我有两个MySQL表,希望从表2中选择值最高的结果,并将它们追加到表1中。
表1包含ID,MSISDN(14位数字)
表2包含ID、MSISDN、field2、date
我想返回表1中所有MSISDN的列表,以及表22.Field2和TabLe2.DATE的结果,其中TabLe2.DATE是匹配MSISDN的最大值。
我该怎么做?我知道我需要使用MAX,但是我不知道如何构造子查询来为table2.field添加正确的结果。

最佳答案

通常,你可以通过
创建包含每个ID的最大日期的子选择
将此子选择与原始表联接以返回其他列
注意,如果有两个相同的(MSISDN,date)记录,它们都将被返回。
SQL服务器

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

关于mysql - MySQL查询附加最新结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9565878/

10-11 12:10