Что такое JOIN? Какие виды JOIN бывают (INNER, LEFT, RIGHT, FULL)?

JOIN объединяет строки из двух таблиц по связанным полям. Основные виды — INNER JOIN, LEFT JOIN, RIGHT JOIN и FULL JOIN; они различаются тем, какие строки сохраняются, если совпадения не найдено.
Подробный ответ

Что такое JOIN

JOIN — это способ соединить данные из двух таблиц по общему полю. Обычно это связано с ключами, например users.id и orders.user_id.

INNER JOIN

INNER JOIN возвращает только те строки, для которых есть совпадение в обеих таблицах. Если соответствия нет, строка не попадёт в результат.

LEFT JOIN

LEFT JOIN возвращает все строки из левой таблицы и только совпавшие строки из правой. Если совпадения нет, поля правой таблицы будут NULL.

RIGHT JOIN

RIGHT JOIN работает наоборот: сохраняет все строки из правой таблицы и подставляет совпавшие строки из левой.

FULL JOIN

FULL JOIN возвращает все строки из обеих таблиц: совпавшие объединяет, а несовпавшие дополняет NULL там, где пары нет.

Пример

SELECT users.id, users.name, orders.id AS order_id
FROM users
LEFT JOIN orders ON users.id = orders.user_id;

Этот запрос покажет всех пользователей, даже если у некоторых из них нет заказов.

Как ответить на собеседовании

Я бы сказал, что JOIN нужен для объединения связанных данных из разных таблиц. INNER JOIN оставляет только совпавшие строки, LEFT JOIN сохраняет все строки слева, RIGHT JOIN — все строки справа, а FULL JOIN — все строки из обеих таблиц.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге