LEFT JOIN IS NULL, EXISTS, NOT EXISTS, IN vs EXISTS.
INNER, LEFT, RIGHT, FULL, CROSS, self-join, anti-join, semi-join паттерны.
Ключевые темы: join, inner, left, anti-join, self-join.
Anti-join и semi-join — это логические разновидности соединения таблиц по принципу наличия или отсутствия совпадений. Semi-join возвращает строки одной таблицы, для которых нашлось хотя бы одно соответствие в другой, не дублируя их и не подмешивая её столбцы. Anti-join делает противоположное — оставляет строки, для которых совпадений нет вовсе. В SQL их обычно выражают через сопоставление с пустым результатом или через проверку существования связанных записей.
Где применяется в аналитике: Используются для поиска клиентов без заказов, товаров без продаж, пользователей, не совершивших целевое действие, и для сверки данных между системами. Anti-join удобен в проверках качества данных и поиске «сирот»; semi-join — когда нужна фильтрация по факту наличия связи без размножения строк и лишних столбцов.
На собеседовании: Спрашивают, потому что начинающие часто путают эти конструкции с обычным соединением и получают дубли или теряют строки. Проверяют понимание разницы между типами join и умение выбрать корректный способ выразить «есть совпадение» и «совпадения нет».
В Pro-подписке по этому конспекту получите: