FULL JOIN

Базовый SQL
≈ 1 мин чтения

FULL JOIN сохраняет обе стороны

FULL JOIN, или FULL OUTER JOIN, возвращает совпавшие строки и одновременно сохраняет строки без пары как слева, так и справа.

SELECT u.id AS user_id, o.id AS order_id
FROM users AS u
FULL JOIN orders AS o ON o.user_id = u.id;

Если пользователь и заказ совпали по условию, они оказываются в одной строке результата. Если пары нет, недостающая сторона представлена значениями NULL.

Когда полезен FULL JOIN

Он удобен, когда нужно увидеть не только совпадения, но и различия между двумя наборами: например, какие записи есть только в первом источнике, только во втором или сразу в обоих.

Поддержка FULL JOIN зависит от СУБД. Это стандартная SQL-конструкция, но некоторые популярные СУБД не поддерживают её напрямую. В конкретном проекте всегда учитывай диалект используемой базы.