← Все уроки

SQL с нуля. Часть 5: JOIN — INNER, LEFT, RIGHT, FULL, CROSS

Часть 5 учебника SQL. Все типы JOIN: INNER, LEFT, RIGHT, FULL OUTER, CROSS. Диаграммы Венна, типичные ошибки, fan-out, когда какой брать.

Урок курса «SQL с нуля» — открой бесплатной регистрацией
Ниже — план урока. Зарегистрируйся за 30 секунд, чтобы открыть полную теорию и 10 задач с автопроверкой прямо в браузере (PostgreSQL и SQLite с автопроверкой), сохранять прогресс и пройти все 10 частей бесплатно.
INNER JOIN: диаграмма Венна — только пересечение A и B

TL;DR: JOIN соединяет строки из двух таблиц по условию. INNER JOIN — только пересечение (строки есть в обеих). LEFT JOIN — все из левой + совпадения из правой. RIGHT JOIN — зеркало LEFT. FULL OUTER JOIN — все из обеих. CROSS JOIN — декартово произведение (каждая с каждой). 80% работы — INNER и LEFT.

В этой части:

Что разберёшь в этом уроке

Частые вопросы

Зачем аналитику JOIN?

Данные о пользователе хранятся в users. Данные о заказах — в orders. Чтобы посчитать «выручка по странам», надо соединить orders с users (orders.user_id → users.id).

Что такое INNER JOIN?

INNER JOIN — пересечение: только строки, у которых есть пара в обеих таблицах.

INNER JOIN: диаграмма Венна — только пересечение A и B

Анимация: INNER JOIN сопоставляет строки city и country по ключу country_id = id

Что такое LEFT JOIN и когда он нужен?

LEFT JOIN — все строки из левой таблицы + совпадения из правой. Если совпадения нет — NULL.

LEFT JOIN: все строки из A (даже без пары в B)

Анимация: LEFT JOIN сохраняет все строки слева — если пары справа нет, подставляется NULL

Чем RIGHT JOIN отличается от LEFT?

RIGHT JOIN — зеркало LEFT. Все строки из правой таблицы + совпадения слева. Если совпадения слева нет — на месте полей из A будут NULL.

RIGHT JOIN — диаграмма Венна: всё из B плюс пересечение с A

Что такое FULL OUTER JOIN?

FULL OUTER JOIN — все строки из обеих таблиц. Если пары нет — NULL с той стороны.

FULL OUTER JOIN: всё из A + всё из B

Как БД ищет совпадения строк — пошаговая анимация:

JOIN execution: матчинг строк по очереди

Когда нужен CROSS JOIN?

CROSS JOIN — декартово произведение. Каждая строка А соединяется с каждой строкой Б. Условия ON у него нет — это и есть его суть. Если в A 3 строки, а в B 3 строки, получится 9 строк (3 × 3).

CROSS JOIN: 3 цвета на 3 размера дают 9 комбинаций — каждая с каждой

Free — после регистрации
0 ₽
  • Все 10 уроков курса + 92 интерактивных задач
  • 5 SQL и 5 Python-задач в тренажёре
  • 5 кейсов · 10 метрик · 1 AI-собеседование
Начать бесплатно →
Pro
1 999 ₽/мес
  • Все 576 SQL + 561 Python-задач
  • 627 кейсов · 420 метрик · 698 заданий
  • Безлимит AI-собеседований с разбором
Оформить Pro →