Назад к вопросам
СБЕР
Junior — Middle
94
Каким образом можно определить пользователей из первой таблицы, у которых отсутствует связанная запись во второй таблице, используя SQL?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Чтобы определить пользователей из первой таблицы, у которых отсутствует связанная запись во второй таблице, можно использовать несколько подходов в SQL:
- LEFT JOIN с проверкой на NULL во второй таблице:
SELECT t1.*
FROM first_table t1
LEFT JOIN second_table t2 ON t1.id = t2.user_id
WHERE t2.user_id IS NULL;
Здесь мы делаем левое соединение и выбираем те записи из первой таблицы, для которых нет соответствующих записей во второй (т.е. поля второй таблицы будут NULL).
- Использование NOT EXISTS:
SELECT *
FROM first_table t1
WHERE NOT EXISTS (
SELECT 1 FROM second_table t2 WHERE t2.user_id = t1.id
);
- Использование NOT IN:
SELECT *
FROM first_table
WHERE id NOT IN (SELECT user_id FROM second_table WHERE user_id IS NOT NULL);
Первый и второй варианты обычно предпочтительнее с точки зрения производительности и корректности при наличии NULL в данных.