Ответ
Оператор 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 пришлось бы хранить все данные клиента в каждой строке заказа, что привело бы к аномалиям при обновлении или удалении.