Anti-join и Semi-join

SQL для аналитикаТема 2. Соединения таблиц (JOIN)

LEFT JOIN IS NULL, EXISTS, NOT EXISTS, IN vs EXISTS.

О разделе «Тема 2. Соединения таблиц (JOIN)»

INNER, LEFT, RIGHT, FULL, CROSS, self-join, anti-join, semi-join паттерны.

Ключевые темы: join, inner, left, anti-join, self-join.

Все темы в разделе «Тема 2. Соединения таблиц (JOIN)»

Anti-join и Semi-join: кратко и по делу

Anti-join и semi-join — это логические разновидности соединения таблиц по принципу наличия или отсутствия совпадений. Semi-join возвращает строки одной таблицы, для которых нашлось хотя бы одно соответствие в другой, не дублируя их и не подмешивая её столбцы. Anti-join делает противоположное — оставляет строки, для которых совпадений нет вовсе. В SQL их обычно выражают через сопоставление с пустым результатом или через проверку существования связанных записей.

Где применяется в аналитике: Используются для поиска клиентов без заказов, товаров без продаж, пользователей, не совершивших целевое действие, и для сверки данных между системами. Anti-join удобен в проверках качества данных и поиске «сирот»; semi-join — когда нужна фильтрация по факту наличия связи без размножения строк и лишних столбцов.

На собеседовании: Спрашивают, потому что начинающие часто путают эти конструкции с обычным соединением и получают дубли или теряют строки. Проверяют понимание разницы между типами join и умение выбрать корректный способ выразить «есть совпадение» и «совпадения нет».

Обновлено:

Полный разбор темы «Anti-join и Semi-join» — в Pro

В Pro-подписке по этому конспекту получите:

Открыть все 390+ конспектов →