Для чего используется оператор JOIN в SQL?

«Для чего используется оператор JOIN в SQL?» — вопрос из категории Базы данных, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Оператор JOIN используется для объединения строк из двух или более таблиц на основе логической связи (условия соединения) между ними. Это фундаментальная операция в реляционных базах данных, позволяющая извлекать связанные данные, избегая их дублирования (нормализация).

Основные типы JOIN:

Тип JOIN Описание
INNER JOIN Возвращает только строки, где есть совпадение в обеих таблицах.
LEFT (OUTER) JOIN Возвращает все строки из левой таблицы и совпадающие из правой. При отсутствии совпадения поля правой таблицы будут NULL.
RIGHT (OUTER) JOIN Возвращает все строки из правой таблицы и совпадающие из левой.
FULL (OUTER) JOIN Возвращает строки при наличии совпадения в любой из таблиц.
CROSS JOIN Возвращает декартово произведение (все комбинации строк).

Примеры:

-- INNER JOIN: Получить заказы с информацией о клиентах
SELECT o.id, o.order_date, c.name
FROM orders o
INNER JOIN customers c ON o.customer_id = c.id;

-- LEFT JOIN: Получить всех клиентов и их заказы (если есть)
SELECT c.name, o.id
FROM customers c
LEFT JOIN orders o ON c.id = o.customer_id;

Почему это важно: Без JOIN пришлось бы хранить все данные клиента в каждой строке заказа, что привело бы к аномалиям при обновлении или удалении.