Ответ
FULL OUTER JOIN — это оператор SQL, который возвращает все записи из обеих объединяемых таблиц.
Логика работы:
- Совпадающие записи из левой (
TableA) и правой (TableB) таблиц объединяются в одну строку. - Для записей из
TableA, у которых нет совпадения вTableB, столбцы изTableBзаполняются значениямиNULL. - Для записей из
TableB, у которых нет совпадения вTableA, столбцы изTableAзаполняются значениямиNULL.
Пример синтаксиса:
SELECT *
FROM TableA
FULL OUTER JOIN TableB
ON TableA.id = TableB.id;
Важные особенности:
- Не поддерживается в MySQL. Для эмуляции используется комбинация
LEFT JOINиRIGHT JOINсUNION. - Поддерживается в PostgreSQL, SQL Server, Oracle и других СУБД.
- Полезен для полного сравнения двух наборов данных или поиска отсутствующих записей в каждой из таблиц.