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

Объясните различие между внутренним соединением и левым внешним соединением в SQL.

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

sobes.tech AI

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

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

Пример:

Таблица A:

id name
1 Alice
2 Bob

Таблица B:

id city
1 London
  • INNER JOIN по id:
id name city
1 Alice London
  • LEFT JOIN по id:
id name city
1 Alice London
2 Bob NULL

Таким образом, LEFT JOIN сохраняет все записи из левой таблицы, а INNER JOIN — только совпадающие.