Какова разница между INNER JOIN и LEFT JOIN? Что происходит со строкой левой таблицы, если соответствующей строки в правой таблице нет?

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

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

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

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

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

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

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

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

Пример:

SELECT * FROM A INNER JOIN B ON A.id = B.a_id;
-- Вернет только совпадающие записи

SELECT * FROM A LEFT JOIN B ON A.id = B.a_id;
-- Вернет все записи из A, а из B — совпадающие или NULL

Таким образом, главное отличие — внутреннее соединение фильтрует только совпадающие строки, левое внешнее сохраняет все из левой таблицы.

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

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

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

Подробнее