Sobes.tech
Назад к вопросам
Junior — Middle
91

Как отличить внутреннее соединение от левого внешнего соединения при работе с SQL-запросами?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

В 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

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