Оператор Union
Свайпніть щоб показати меню
Ви привернули увагу клієнта, якому потрібні SQL-запити. Перш ніж перейти до JOINs, ви ознайомитеся з оператором UNION, який є важливим для об'єднання кількох таблиць.
UNION у SQL використовується для об'єднання результатів двох або більше запитів SELECT в один підсумковий набір. Це дозволяє об'єднувати рядки з кількох запитів у єдиний результат даних.
Ось кілька важливих аспектів використання UNION:
-
Кількість і порядок стовпців: усі запити, які об'єднуються за допомогою
UNION, повинні мати однакову кількість стовпців у такому ж порядку; -
Типи даних: стовпці в кожному запиті повинні мати сумісні типи даних;
-
Унікальні рядки: за замовчуванням
UNIONвидаляє дублікати рядків. ВикористовуйтеUNION ALL, якщо потрібно зберегти дублікати.
Для кращого розуміння як правильно об'єднувати таблиці за допомогою оператора UNION, додано додаткову таблицю, яка містить інформацію про contractors.
Тут небагато інформації: лише first_name, last_name та email.
Ви можете побачити, що ця таблиця має схожість з таблицею employees. За допомогою оператора UNION можна об'єднати ці дві таблиці, щоб, наприклад, переглянути список усіх імен та прізвищ співробітників і підрядників, залучених до компанії.
Для цього використовується оператор UNION:
12345678(SELECT employee_id as id, first_name, last_name FROM employees) UNION (SELECT contractor_id as id, first_name, last_name FROM contractors) ORDER BY id
Тут є два запити, кожен з яких повертає три стовпці з однаковими типами даних. Мета — переглянути Id, first_name та last_name всіх співробітників компанії. Стовпець Id також перейменовано, щоб обидва запити мали однакові назви стовпців.
UNION об'єднує результати цих запитів, видаляючи дублікати (хоча тут їх немає).
Нарешті, результати сортуються за Id за допомогою ORDER BY.
Результати сортуються за Id, який є спільним стовпцем в обох таблицях.
Після використання UNION ви отримуєте "єдиний великий запит", який можна додатково обробляти за допомогою таких операторів, як ORDER BY.
Неможливо безпосередньо використовувати WHERE або GROUP BY з таблицями, об'єднаними за допомогою UNION. Щоб застосувати ці оператори, потрібно використати підзапит у секції FROM. Ось приклад, як це зробити:
123456789SELECT id, first_name, last_name FROM ( SELECT employee_id AS id, first_name, last_name FROM employees UNION SELECT contractor_id AS id, first_name, last_name FROM contractors ) AS combined WHERE first_name = 'Jane'
Використання підзапиту в секції FROM надає більше гнучкості! Спочатку це може здатися складним, але опанування цього значно полегшить написання складних запитів.
1. Яким вимогам повинні відповідати результуючі набори даних, щоб їх можна було об'єднати за допомогою UNION?
2. Як оператор UNION обробляє дублікати рядків за замовчуванням?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат