Объединение

Объединение

Для объединения запросов используется служебное слово UNION:

UNION [ALL]

Оператор UNION объединяет выходные строки каждого из запросов в один результирующий набор. Если определен параметр ALL, то сохраняются все дубликаты выходных строк, в противном случае в результирующем наборе остаются только уникальные строки. Заметим, что можно связывать вместе любое число запросов. Кроме того, с помощью скобок можно менять порядок объединения.

При этом должны выполняться следующие условия:

* Количество выходных столбцов каждого из запросов должно быть одинаковым.

* Выходные столбцы каждого из запросов должны быть сравнимыми между собой (в порядке их следования) по типам данных.

* В результирующем наборе используются имена столбцов, заданные в первом запросе.

* Предложение ORDER BY применяется к результату соединения, поэтому оно может быть указано только в конце составного запроса.

Пример. Найти номера моделей и цены ПК и ПК-блокнотов:

SELECT model, price

FROM PC

UNION

SELECT model, price

FROM Laptop

ORDER BY price DESC;

model

price

1750

1200.0

1752

1150.0

1298

1050.0

1233

980.0

1321

970.0

1233

950.0

1121

850.0

1298

700.0

1232

600.0

1233

600.0

1232

400.0

1232

350.0

1260

350.0

Пример. Найти тип продукции, номер модели и цену ПК и ПК-блокнотов:

SELECT Product .type, PC.model, price

FROM PC INNER JOIN

Product ON PC.model = Product .model

UNION

SELECT Product .type, Laptop.model, price

FROM Laptop INNER JOIN

Product ON Laptop.model = Product .model

ORDER BY price DESC;

type

model

price

Laptop

1750

1200.0

Laptop

1752

1150.0

Laptop

1298

1050.0

PC

1233

980.0

Laptop

1321

970.0

PC

1233

950.0

PC

1121

850.0

Laptop

1298

700.0

PC

1232

600.0

PC

1233

600.0

PC

1232

400.0

PC

1232

350.0

PC

1260

350.0