Оператор UNION в SQL вибирає рядки з двох або більше таблиць. Якщо рядки в таблицях повторюються, вони виводяться лише один раз (тобто без дублів). Наприклад:
|
1 2 3 4 5 |
SELECT age FROM Teachers UNION SELECT age FROM Students; |
Тут ми витягуємо стовпець age з таблиць Teachers і Students, ігноруючи рядки, що повторюються.

Нюанси використання оператора UNION
Щоб використовувати оператор UNION в SQL, слід пам’ятати, що:
Кількість стовпців у всіх таблицях має бути однаковою. Наприклад, у вищезазначеному прикладі в таблицях Teachers та Students по три стовпці.
Типи даних стовпців мають бути однаковими. Наприклад, у вищезазначеному прикладі стовпець age у таблиці Teachers є цілочисленного типу даних, як і стовпець age у таблиці Students.
Стовпці повинні знаходитися в однаковому порядку в кожній таблиці. Наприклад, у вищезазначеному прикладі порядок стовпців у таблиці Teachers — id-name-age, як і в таблиці Students.
Оператор UNION ALL в SQL
Оператор UNION ALL вибирає рядки з двох або більше таблиць, подібно до роботи оператора UNION. Однак, на відміну від UNION, оператор UNION ALL не ігнорує рядки, що повторюються (тобто враховує дублі).
Давайте спробуємо виконати попередню команду SQL, використовуючи UNION ALL замість UNION:
|
1 2 3 4 5 |
SELECT age FROM Teachers UNION ALL SELECT age FROM Students; |
Тут ми вибираємо рядки з обох таблиць, включно з дублями.

UNION проти UNION ALL в SQL
| Оператор UNION | Оператор UNION ALL |
| Повертає лише унікальні рядки з таблиць. | Повертає всі рядки таблиць, включно з повторюваними. |
| Виконується повільніше, порівняно з оператором UNION ALL. | Виконується швидко, так як немає необхідності фільтрувати дані, видаляючи значення, що повторюються. |
Рекомендується використовувати оператор UNION ALL у випадках, коли ви впевнені, що дані є унікальними. Таким чином, можна покращити продуктивність.
UNION проти JOIN в SQL
| Оператор UNION | Оператор JOIN |
| Використовується для об’єднання даних із результатів різних запитів у нові рядки. | Використовується для об’єднання даних із різних таблиць у нові стовпці. |
| Вибирає дані із двох таблиць та поєднує їх в результаті. | Використовує загальний стовпець в обох таблицях для вибірки даних. |
| Кількість стовпців має бути однаковою в обох таблицях. | У таблицях може бути будь-яка кількість стовпців. |
| Тип даних стовпців має бути однаковим. | Тип даних стовпців може бути різним. |
