JOINСредний
FULL OUTER JOIN
Возвращает все строки из обеих таблиц. Где нет совпадения — NULL с соответствующей стороны.
Синтаксис
SELECT ... FROM t1 FULL OUTER JOIN t2 ON t1.id = t2.t1_id;
Объяснение
FULL OUTER JOIN = LEFT JOIN + RIGHT JOIN (без дублей). Используется редко, но полезен для нахождения несоответствий между двумя таблицами.
Пример использования: сравнить данные в двух таблицах и найти строки, которые есть только в одной.
Пример
-- Найти несоответствия между двумя источниками данных SELECT a.id AS id_a, b.id AS id_b FROM source_a a FULL OUTER JOIN source_b b ON a.id = b.id WHERE a.id IS NULL OR b.id IS NULL;
Связанные термины
Анекдоты по теме
ORM приходит к психотерапевту: — Я генерирую запросы. Терапевт: — И что в этом плохого? ORM: — 500 JOIN на пустой таблице. Терапевт: — А lazy loading пробовали? ORM: — Тогда 500 отдельных запросов. Терапевт: — Вам нужен DBA.
— Сколько джойнов нужно для счастья? — Один INNER JOIN и хороший индекс на колонку связи.
— Мой запрос вернул NULL. — Проверь JOIN. — Там NULL. — Проверь WHERE. — Там тоже NULL. — Ты уверен, что база вообще существует? — COALESCE(база, 'не знаю').