#sql #ms-access
#sql #ms-access
Вопрос:
У меня есть две таблицы со структурой, подобной этой:
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
Как я могу включить поле ‘Notice’ также в этот запрос?
Ответ №1:
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