JOIN в SQL: задачи на INNER, LEFT и SELF JOIN

Практика JOIN в SQL: строки без пары, дубли, три таблицы и уникальные пары через SELF JOIN.

Состав подборки: 5 вопросов с выбором ответа, 1 задание с текстовым ответом, 5 задач на код. Условия и формат проверки указаны на странице каждой задачи.

Разберите маленький пример

У клиента две покупки. После JOIN клиента с покупками получатся две строки — по одной на покупку. Это не обязательно ошибка. Если нужен один результат на клиента, сначала определите, что агрегировать; DISTINCT не исправляет неверное условие соединения.

На что обратить внимание

  • Условие на правую таблицу в WHERE может убрать строки без совпадения после LEFT JOIN.
  • Для поиска отсутствия пары проверяйте NULL в подходящем ключе правой таблицы.
  • В SELF JOIN различайте пары A–B и B–A и исключайте соединение строки с самой собой.

Порядок практики

  1. LEFT JOIN в SQL: какие строки сохраняет соединение — выбор ответа.
  2. SQL: найдите товары, которые ни разу не заказывали — выбор ответа.
  3. JOIN в SQL: запрос выполняется, но условие ON неверное — текстовый ответ.
  4. INNER JOIN в SQL: сколько строк вернёт запрос — выбор ответа.
  5. JOIN и дубли строк: связь один-ко-многим или ошибка — выбор ответа.
  6. LEFT JOIN и сравнение с NULL: почему результат пустой — выбор ответа.
  7. SQL INNER JOIN: соединить заказы с именами клиентов — код.
  8. Клиенты без заказов SQL: задача на LEFT JOIN и NULL — код.
  9. SQL JOIN трёх таблиц: состав заказов и товары — код.
  10. SQL: SELF JOIN и поиск уникальных пар — Пары полных тёзок внутри отдела — код.
  11. SQL: SELF JOIN и поиск уникальных пар — Пары с несколькими общими проектами — код.

Куда двигаться дальше

Первые соединения — в бесплатном курсе SQL. Для сложных сценариев и собеседований посмотрите платный курс «Продвинутый SQL».

Продолжение: GROUP BY и HAVING.