Объединяет результаты нескольких запросов в один результирующий набор. Этот набор включает все строки, относящиеся ко всем запросам в объединении.
Если определен параметр ALL
, то сохраняются все
дубликаты выходных строк; в противном случае в результирующем наборе
присутствуют только уникальные строки. Можно связывать вместе любое число
запросов, например: SELECT ... UNION SELECT ... UNION SELECT ...
Кроме того, с помощью скобок можно задавать порядок объединения: (SELECТ
... UNION SELECT ...) EXCEPT (SELECT
...)
Основные правила объединения:
количество и порядок столбцов должны быть одинаковыми во всех запросах;
типы данных должны быть совместимыми.
ORDER BY применяется к результату соединения, поэтому оно может быть указано только в конце запроса.
Синтаксис
{ <query> | ( <query_expression> ) } { UNION [ ALL ] { <query> | ( <query_expression> ) } [ ...n ] }
Аргументы
query
Простое выражение, возвращающее данные для объединения.
query_expression
Выражение запроса, возвращающее данные для объединения. Например,
SELECT ... UNION SELECT ... UNION SELECT ...
)
ALL
Объединяет в результирующий набор все строки, в том числе повторяющиеся. Если обратное не указано, дубликаты строк удаляются (по умолчанию подразумевается DISTINCT).