Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Оператор Union | Вкладені підзапити
SQL Середнього Рівня

Оператор Union

Свайпніть щоб показати меню

Ви привернули увагу клієнта, якому потрібні SQL-запити. Перш ніж перейти до JOINs, ви ознайомитеся з оператором UNION, який є важливим для об'єднання кількох таблиць.

Note
Визначення

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

Ось кілька важливих аспектів використання UNION:

  1. Кількість і порядок стовпців: усі запити, які об'єднуються за допомогою UNION, повинні мати однакову кількість стовпців у такому ж порядку;

  2. Типи даних: стовпці в кожному запиті повинні мати сумісні типи даних;

  3. Унікальні рядки: за замовчуванням 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.

Note
Примітка

Результати сортуються за Id, який є спільним стовпцем в обох таблицях.

Після використання UNION ви отримуєте "єдиний великий запит", який можна додатково обробляти за допомогою таких операторів, як ORDER BY.

Неможливо безпосередньо використовувати WHERE або GROUP BY з таблицями, об'єднаними за допомогою UNION. Щоб застосувати ці оператори, потрібно використати підзапит у секції FROM. Ось приклад, як це зробити:

123456789
SELECT 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 обробляє дублікати рядків за замовчуванням?

question mark

Яким вимогам повинні відповідати результуючі набори даних, щоб їх можна було об'єднати за допомогою UNION?

Виберіть правильну відповідь

question mark

Як оператор UNION обробляє дублікати рядків за замовчуванням?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 5

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 2. Розділ 5
some-alt