[英]Left join table with max value and other column from second table
我有两个结构与此类似的表:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.