我有两个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/