Оператор об'єднання результатів вибірки UNION в SQL-запиті

Матеріал представлений на сторінці взятий з ресурсу http://www.w3schools.com/sql/


Оператор UNION в SQL-запиті використовується якщо необхідно об'єднати результати вибірки двух та більше операторів SELECT.

Зауважте, що кожен SQL-вираз SELECT з оператором UNION повинен мати одинакову кількість колонок. Колонки мають бути одинакового типу даних. Також колонки в кожному SQL-виразі SELECT повинні мати одинаковий порядок.

Синтаксис використання оператора UNION SQL-запиту.

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

Зауважте: оператор UNION за замовчуванням вибирає різні значення. Щоб вибирати всі значення даних, використовується ключове слово ALL.

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

PS: Ім'я результуючої колонки зазвичай відповідає імені колонки першого SELECT.

База Даних Demo

Для зразка використаємо добре відому :) Базу Даних Northwind .
Нижче представлений зразок таблиці "Customers" (Споживачі):

CustomerIDCustomerNameCityCountry
1Alfreds FutterkisteBerlinGermany
2Ana TrujilloMexicoMexico
3Antonio MorenoMexicoMexico

Таблиця "Suppliers"(Постачальники):

SupplierIDSupplierNameCityCountry
1Exotic LiquidLondonUK
2New OrleansNew OrleansUSA
3Grandma Kelly'sAnn ArborUSA

Приклад використання оператора UNION

Представлений нижче SQL-вираз вибирає всі записи міст з різними назвами ( значення distinct) з таблиці "Customers" та таблиці "Suppliers".

SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;

Перевір себе тут

Зауважте: Оператор UNION не може бути використаний для переліку ВСІХ міст з двух таблиць. Якщо декілька споживачів та постачальників живуть в одному й тому ж місті , то воно буде пораховане лише один раз. UNION виводить лише різні значення. Використовуючи UNION ALL можна вибрати також і дублюючі назви міст.

Приклад використання оператора UNION ALL

Застосовуючи SQL-вираз UNION ALL ми виберемо всі (дублюючі значення також) записи міст з таблиці "Customers" та таблиці "Suppliers".

SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;

Перевір себе тут

SQL-вираз UNION з оператором WHERE

Застосовуючи SQL-вираз UNION ALL ми виберемо всі (дублюючі значення також) записи лише з міста German з таблиці "Customers" та таблиці "Suppliers".

SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;

Перевір себе тут