Повернутися до всіх запитань

Як працює FULL JOIN?

Devs Hive

Devs Hive

Зустрічали на інтервʼю: 0 користувачів

FULL JOIN - це тип JOIN, який повертає всі рядки з обох таблиць. Якщо між таблицями є збіг, рядки будуть об’єднані в один результат. Якщо збігу немає, то для відсутніх значень буде NULL. Тобто FULL JOIN поєднує в собі поведінку LEFT JOIN і RIGHT JOIN одночасно.

Розберемо приклад

Ми маємо дві таблиці: users і subscriptions. Наша задача полягає в тому, щоб отримати всіх користувачів і всі підписки, навіть якщо для деяких користувачів немає підписки або якщо є підписка, яка не прив’язана до жодного користувача.

-- users
id | name
------------
1 | Alice
2 | Bob
3 | John

-- subscriptions
id | user_id | plan_name
-------------------------
1 | 1 | Basic
2 | 2 | Premium
3 | 5 | Enterprise

Запит буде мати наступний вигляд. Давайте розберемо його детальніше:

-- Вибираємо стовпці, які хочемо бачити в результаті:
-- name - з таблиці users
-- plan_name - з таблиці subscriptions
SELECT
users.name,
subscriptions.plan_name
FROM
users

-- Робимо FULL JOIN таблиці subscriptions
-- по полю users.id та subscriptions.user_id
FULL JOIN
subscriptions
ON
users.id = subscriptions.user_id;

В результаті виконання запиту, ми отримаємо такий результат:

name | plan_name
-------------------------
Alice | Basic
Bob | Premium
John | NULL
NULL | Enterprise

Важливо пам’ятати

FULL JOIN повертає всі записи з обох таблиць. Якщо збіг є - дані об’єднуються. Якщо збігу немає - з однієї зі сторін буде NULL.

Зустрічав на інтервʼю?

Повʼязані питання

Коментарі (0)

Увійдіть, щоб залишити коментар

Поки що немає коментарів. Будьте першим!