Sobes.tech
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