FULL OUTER JOIN
Возвращает все строки из обеих таблиц. Где нет совпадения — NULL с соответствующей стороны.
SELECT ... FROM t1 FULL OUTER JOIN t2 ON t1.id = t2.t1_id;
Объяснение
Пример
-- Найти несоответствия между двумя источниками данных 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;
Связанные термины
Анекдоты по теме
— Почему INNER JOIN похож на интроверта? — Он общается только с теми, кого уже знает.
— Почему HASH JOIN быстрее NESTED LOOP при больших таблицах? — NESTED LOOP: для каждой строки левой таблицы ищет совпадение в правой. O(n*m). — HASH JOIN: строит хэш-таблицу из меньшей таблицы, потом сканирует большую. O(n+m). — Но при маленьких таблицах? — NESTED LOOP эффективнее из-за меньших накладных расходов.
Разработчик пишет: SELECT * FROM a JOIN b ON a.id = b.a_id JOIN c ON b.id = c.b_id JOIN d ON c.id = d.c_id JOIN e ON d.id = e.d_id JOIN f ON e.id = f.e_id DBA: ты только что создал цепочку из 6 JOIN. Разработчик: и что? DBA: надеюсь, у тебя везде есть индексы.