MS Access | Запрос на объединение данных запроса или таблицы с другим запросом или таблицейСкачать пример (в zip): QueryExample, см. запросы Sample_Union |
Имеем таблицы:
Table1:
Table2:
Нужен результат:
Открываем бланк запроса, закрываем окно Show Table, переходим в вид SQL (SQL View):
Используя язык запросов SQL (Structured Query Language):
select * from Table1 UNION select * from Table2;
SELECT NameID, Name from Table1 union select NameID, Name from Table2;
3. Добавляем условие (WHERE): SELECT NameID, Name from Table1 union select NameID, Name from Table2 WHERE [NameID]=3;
4. Добавляем группировку по второму запросу(GROUP BY): SELECT Table2.NameID, Table2.Name FROM Table2 UNION SELECT Table3.NameID, Table3.Name FROM Table3 GROUP BY Table3.NameID, Table3.Name;
5. Добавляем сортировку (ORDER BY): SELECT Table2.NameID, Table2.Name FROM Table2 union SELECT Table3.NameID, Table3.Name FROM Table3 GROUP BY Table3.NameID, Table3.Name ORDER BY NameID;
6. Добавляем таблицу, связь INNER JOIN (второй запрос): SELECT Table1.NameID, Table1.Name FROM Table1 GROUP BY Table1.NameID, Table1.Name, Table1.ID HAVING (((Table1.ID)=11)) union SELECT DISTINCT Table2.NameID, Table3.Name FROM Table2 INNER JOIN Table3 ON Table2.NameID = Table3.NameID ORDER BY Name;
где DISTINCT – выбрать только уникальные записи.
См. также как просто научиться писать запросы на SQL языке..
|