Junior — Middle
Hoe kunnen gebruikers uit de eerste tabel worden geïdentificeerd die geen gekoppeld record in de tweede tabel hebben met behulp van SQL?
sobes.tech AI
Antwoord van 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 в данных.