FULL JOIN - це тип JOIN, який повертає всі рядки з обох таблиць. Якщо між таблицями є збіг, рядки будуть об’єднані в один результат. Якщо збігу немає, то для відсутніх значень буде NULL. Тобто FULL JOIN поєднує в собі поведінку LEFT JOIN і RIGHT JOIN одночасно.
Розберемо приклад
Ми маємо дві таблиці: users і subscriptions. Наша задача полягає в тому, щоб отримати всіх користувачів і всі підписки, навіть якщо для деяких користувачів немає підписки або якщо є підписка, яка не прив’язана до жодного користувача.
Запит буде мати наступний вигляд. Давайте розберемо його детальніше:
В результаті виконання запиту, ми отримаємо такий результат:
Важливо пам’ятати
FULL JOIN повертає всі записи з обох таблиць. Якщо збіг є - дані об’єднуються. Якщо збігу немає - з однієї зі сторін буде NULL.