Sobes.tech
Junior — Middle

Können Sie den Unterschied zwischen Vollverknüpfungen (FULL JOIN) und inneren Verknüpfungen (INNER JOIN) in SQL erklären?

sobes.tech KI

Antwort von AI

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

FULL JOIN (или FULL OUTER JOIN) возвращает все строки из обеих таблиц. Если для строки из одной таблицы нет совпадения в другой, то в местах отсутствующих данных будут NULL.

Пример:

-- Таблица A
id | name
1  | Alice
2  | Bob

-- Таблица B
id | city
2  | London
3  | Paris

-- INNER JOIN
SELECT A.id, A.name, B.city FROM A INNER JOIN B ON A.id = B.id;
-- Результат:
-- 2 | Bob | London

-- FULL JOIN
SELECT A.id, A.name, B.city FROM A FULL JOIN B ON A.id = B.id;
-- Результат:
-- 1 | Alice | NULL
-- 2 | Bob   | London
-- 3 | NULL  | Paris

Таким образом, INNER JOIN фильтрует только совпадающие записи, а FULL JOIN сохраняет все записи из обеих таблиц, заполняя отсутствующие значения NULL.