Встречается на собеседованиях • сегодня
Как исключить пересечения в LEFT JOIN
LEFT JOIN возвращает все строки из левой таблицы, даже если нет совпадений в правой. Для исключения пересечений (строк, где есть совпадения) можно использовать:
- Добавить условие
WHERE right_table.key IS NULL- это оставит только строки без совпадений:
sql
SELECT a.*
FROM table_a a
LEFT JOIN table_b b ON a.id = b.a_id
WHERE b.a_id IS NULL- Альтернативно использовать NOT EXISTS:
sql
SELECT a.*
FROM table_a a
WHERE NOT EXISTS (
SELECT 1 FROM table_b b
WHERE b.a_id = a.id
)Оба подхода эффективны, но второй может быть более читаемым для сложных условий. Второй вариант часто лучше оптимизируется СУБД.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы