← К оглавлению занятия

Занятие 22. Операторы JOIN и UNION

📁 Блок: SQL / MySQL / Связи и JOIN ⏱️ Время изучения: ~90 мин 🎯 Сложность: Средняя
#select #from #join #union

⚡ Кратко: задания

  • Объедините имена сотрудников и клиентов через UNION ALL.
  • Сравните INNER, LEFT и RIGHT JOIN для таблиц сотрудников и привилегий.
  • Подмените product_id на product_name через JOIN.

📝 Задания для самостоятельной работы

Все задания выполняются в базе northwind.

Задание 1. UNION: общая выборка имён

Выведите в одну общую выборку из таблиц customers и employees имена и фамилии клиентов и сотрудников.

Задание 2. UNION ALL с источником строки

Добавьте дополнительный столбец, в котором будет значение employee для сотрудника и customer для клиента.

Задание 3. Сравнение JOIN-ов

Выведите все строки из объединённых таблиц employees и employee_privileges с помощью INNER JOIN, LEFT JOIN и RIGHT JOIN. Объясните полученные результаты.

Задание 4. JOIN + подмена идентификатора

Выведите идентификаторы заказов из таблицы order_details. Дополнительно выведите вместо product_id столбец с именем продукта product_name из таблицы products.

Задание 5. JOIN + агрегация

Используя предыдущий запрос, посчитайте количество заказов для каждого наименования продукта.

Задание 6. Многотабличный LEFT JOIN

Выведите идентификаторы заказов из таблицы order_details. Дополнительно выведите вместо product_id столбец с именем продукта product_name из таблицы products и столбец payment_amount из таблицы purchase_orders. Оставьте все строки из таблицы order_details.

Проверка понимания

Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.

Вопрос 1

Для чего нужен JOIN?

Вопрос 2

Что делает UNION?

Вопрос 3

Что делает SELECT?

Вопрос 4

Почему в SQL важен явный список столбцов?

Вопрос 5

Как лучше форматировать сложный SQL-запрос?

Вопрос 6

Что означает NULL?

Вопрос 7

Почему запросы стоит проверять на маленькой выборке?