问题描述
我有两个表,其结构类似于此:
table1
ID |Field1|Field2
table2
ID|Table1_ID|Date|Notice
我需要根据第二个表中的最大日期在MS Access sql中保留这些表的联接,还需要在新表中包括“通知”字段,因此结果应如下所示:
ID|Field1|Field2|Max_Date|Notice
我可以像这样基于最大日期联接表:
SELECT t1.ID,t1.Field1,t1.Field2,t2.Max_date
FROM table1 AS t1
LEFT JOIN
[SELECT Table1_ID,MAX(Date) AS Max_date
FROM table2
GROUP BY Table1_ID] AS t2
ON t1.ID = t2.Table1_ID
解决方法
再次
JOIN
:
SELECT t1.ID,t1.Field1,t1.Field2,t2m.Max_date,t2.Notice
FROM (table1 AS t1 LEFT JOIN
(SELECT Table1_ID,MAX(Date) AS Max_date
FROM table2
GROUP BY Table1_ID
) AS t2m
ON t1.ID = t2m.Table1_ID
) LEFT JOIN
table2 as t2
ON t2.Table1_ID = t2m.Table1_ID AND t2.Date = t2m.Max_Date