Ответ
JOIN — это операция SQL, которая позволяет комбинировать строки из двух или более таблиц на основе связанного между ними столбца (ключа).
Основные типы JOIN (на примере таблиц Users и Orders):
| Тип JOIN | Описание | Визуализация (результат содержит...) |
|---|---|---|
INNER JOIN |
Возвращает только те записи, где есть совпадение в обеих таблицах. | Пересечение множеств. |
LEFT (OUTER) JOIN |
Возвращает все записи из левой таблицы и совпадающие записи из правой. Если совпадения нет, в правой части — NULL. |
Вся левая таблица + пересечение. |
RIGHT (OUTER) JOIN |
Возвращает все записи из правой таблицы и совпадающие записи из левой. Если совпадения нет, в левой части — NULL. |
Вся правая таблица + пересечение. |
FULL (OUTER) JOIN |
Возвращает все записи, когда есть совпадение в левой или правой таблице. Отсутствующие совпадения заполняются NULL. |
Объединение левой и правой таблиц. |
CROSS JOIN |
Возвращает декартово произведение таблиц — все возможные комбинации строк. | Все строки A × все строки B. |
Пример INNER JOIN:
SELECT Users.name, Orders.order_id, Orders.amount
FROM Users
INNER JOIN Orders ON Users.id = Orders.user_id;
-- Результат: только пользователи, у которых есть заказы.
Пример LEFT JOIN:
SELECT Users.name, Orders.order_id
FROM Users
LEFT JOIN Orders ON Users.id = Orders.user_id;
-- Результат: ВСЕ пользователи, даже если у них нет заказов.
-- Для пользователей без заказов order_id будет NULL.
Выбор типа JOIN зависит от того, какие данные необходимо получить: только связанные записи или все записи из одной таблицы независимо от наличия связей.