MS Access | Запрос на объединение данных запроса или таблицы с другим запросом или таблицей

 

Скачать пример (в zip): QueryExample, см. запросы Sample_Union

Имеем таблицы:

 

Table1:

 

       

 

Table2:

 

 

Нужен результат:

 

 

Открываем бланк запроса, закрываем окно Show Table, переходим в вид SQL (SQL View):

 

 

Используя язык запросов SQL (Structured Query Language):

 

1.Если абсолютно совпадают все поля обоих запросов (таблиц), тогда написать:

select * from Table1 UNION select * from Table2;

 

2.Если нужно соединить отдельные поля:

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 языке..

 



© 2018 | Анна Петросян | pashelp@yandex.ru