В SQL внутреннее (INNER) соединение возвращает только те строки, которые совпадают по условию соединения в обеих таблицах.
Какова разница между INNER JOIN и LEFT JOIN? Что происходит со строкой левой таблицы, если соответствующей строки в правой таблице нет?
В 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
Таким образом, главное отличие — внутреннее соединение фильтрует только совпадающие строки, левое внешнее сохраняет все из левой таблицы.