Выражение UNION
Выражение UNION
добавляет результаты одного запроса к результатам другого. При этом дублирующиеся строки убираются из результата, если только не добавлен оператор ALL
.
Примеры
-
Выведем список всех стран, которые встречаются в столбцах
country
в двух таблицах — столиц и количества населения:CREATE TABLE capitals (country VARCHAR, capital VARCHAR); CREATE TABLE population (country VARCHAR, population_mil BIGINT); INSERT INTO capitals VALUES ('Russia', 'Moscow'), ('Italy', 'Rome'), ('Spain', 'Madrid'), ('France', 'Paris'); INSERT INTO population VALUES ('Russia', 143), ('Spain', 48), ('Brazil', 211); SELECT country FROM capitals UNION SELECT country FROM population;
+---------+ | country | +---------+ | Russia | +---------+ | Italy | +---------+ | France | +---------+ | Spain | +---------+ | Brazil | +---------+
-
Теперь для тех же двух таблиц выведем список стран, которые встречаются в столбцах
country
, но без сокращения повторяющихся вхождений. Для этого используем операторALL
:SELECT country FROM capitals UNION ALL SELECT country FROM population;
+---------+ | country | +---------+ | Russia | +---------+ | Italy | +---------+ | Spain | +---------+ | France | +---------+ | Russia | +---------+ | Spain | +---------+ | Brazil | +---------+