Извлечение отсутствующих идентификаторов из второй таблицы

Используйте NOT EXISTS с сопоставлением id: он оставит строки B без соответствия в A. Для приведённых таблиц результат — 3 и 4.

Короткий ответ

Что ответить на собеседовании

Используйте NOT EXISTS с сопоставлением id: он оставит строки B без соответствия в A. Для приведённых таблиц результат — 3 и 4.

Подробный разбор

Ответ с пояснениями

Условие

Имеются две таблицы — «A» и «B». Требуется составить SQL‑запрос, который вернёт все значения столбца id из таблицы «B», отсутствующие в таблице «A».

A   | B
--- | ---
id  | id
1   | 2
2   | 3
5   | 4
7   | 5
9   | 7

Ответ

Используйте NOT EXISTS с сопоставлением id: он оставит строки B без соответствия в A. Для приведённых таблиц результат — 3 и 4.

SELECT b.id
FROM B b
WHERE NOT EXISTS (SELECT 1 FROM A a WHERE a.id = b.id)
ORDER BY b.id;

Индекс A(id) помогает проверке существования. Если в B возможны повторы и нужны именно уникальные значения, добавьте DISTINCT. Вариант NOT IN требует аккуратности с NULL в подзапросе. Здесь сравнение предполагает обычные ненулевые идентификаторы.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее