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

bookОператор 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
copy

Розглянемо, що відбувається:

Маємо два запити, кожен з яких повертає три стовпці з однаковими типами даних. Ми хочемо побачити 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'
copy

Використання підзапиту у секції FROM надає більше гнучкості! Це може здатися складним спочатку, але опанування цього підходу значно спростить написання складних запитів.

1. Які стовпці є обов'язковими при використанні оператора UNION у SQL?

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

question mark

Які стовпці є обов'язковими при використанні оператора UNION у SQL?

Select the correct answer

question mark

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

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Suggested prompts:

Can you explain the difference between UNION and UNION ALL?

How do I use GROUP BY with a UNION result?

Can you show more examples of using subqueries with UNION?

bookОператор 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
copy

Розглянемо, що відбувається:

Маємо два запити, кожен з яких повертає три стовпці з однаковими типами даних. Ми хочемо побачити 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'
copy

Використання підзапиту у секції FROM надає більше гнучкості! Це може здатися складним спочатку, але опанування цього підходу значно спростить написання складних запитів.

1. Які стовпці є обов'язковими при використанні оператора UNION у SQL?

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

question mark

Які стовпці є обов'язковими при використанні оператора UNION у SQL?

Select the correct answer

question mark

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

Select the correct answer

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

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

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

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