Back to questions
Junior — Middle
77
Объясните различие между внутренним соединением и левым внешним соединением в SQL.
Answer from AI
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 — только совпадающие.