我有两个MySQL表,想从table2中选择最高值的结果,并将它们附加到表1。
表1包含ID,MSISDN(14位数字)
表2包含ID,MSISDN,field2,日期
我想返回表1中所有MSISDN的列表,以及table2.field2和table2.date的结果,其中table2.date是匹配的MSISDN的最大值。
我该怎么做?我知道我需要使用MAX,但我不知道如何构造子查询来为table2.field添加正确的结果。
答案 0 :(得分:1)
通常,您可以通过
执行此操作请注意如果有两个相同的(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