左连接表的最大值和第二个表中的其他列

问题描述

我有两个表,其结构类似于此:

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