Выражение 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 | +---------+