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

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

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

Пример:

SELECT a.id, a.name, b.order_id
FROM customers a
INNER JOIN orders b ON a.id = b.customer_id;

Вернёт только клиентов, у которых есть заказы.

SELECT a.id, a.name, b.order_id
FROM customers a
LEFT JOIN orders b ON a.id = b.customer_id;

Вернёт всех клиентов, включая тех, у кого нет заказов (в этом случае order_id будет NULL).

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее