Junior — Middle
65
Объясните различия между полным внешним соединением (FULL OUTER JOIN) и внутренним соединением (JOIN) в SQL
Answer from AI
sobes.tech AI
В SQL внутреннее соединение (JOIN или INNER JOIN) возвращает только те строки, которые имеют совпадающие значения в обеих таблицах по условию соединения. Если совпадений нет, строки не попадают в результат.
Полное внешнее соединение (FULL OUTER JOIN) возвращает все строки из обеих таблиц. Если для строки из одной таблицы нет соответствия в другой, то в местах отсутствующих данных будут NULL.
Пример:
-- Таблица A
id | name
---|------
1 | Anna
2 | Boris
-- Таблица B
id | city
---|------
2 | Moscow
3 | Berlin
-- INNER JOIN
SELECT A.id, A.name, B.city FROM A INNER JOIN B ON A.id = B.id;
-- Результат:
-- 2 | Boris | Moscow
-- FULL OUTER JOIN
SELECT A.id, A.name, B.city FROM A FULL OUTER JOIN B ON A.id = B.id;
-- Результат:
-- 1 | Anna | NULL
-- 2 | Boris | Moscow
-- 3 | NULL | Berlin