Menu
Coddy logo textTech

INTERSECT

Часть раздела Продвинутый уровень путешествия по SQL на Coddy — урок 17 из 27.

INTERSECT возвращает только те строки, которые присутствуют в обоих наборах результатов. Как и UNION, он удаляет дубликаты и требует соответствия столбцов с каждой стороны.

SELECT email FROM newsletter_subs
INTERSECT
SELECT email FROM premium_users

Это каждый адрес электронной почты, который одновременно подписан на рассылку и является премиум-пользователем, без написания JOIN.

Зачем это нужно, когда JOIN тоже может это сделать? INTERSECT короче, когда обе стороны — это простые SELECT и вы выполняете сопоставление по всей строке, а не только по id.

challenge icon

Задание

Легко

Доступные таблицы и столбцы:

  • <strong>newsletter</strong>: <strong>email</strong>, <strong>active</strong>
  • <strong>premium</strong>: <strong>email</strong>, <strong>plan</strong>

Верните адреса электронной почты (emails), которые значатся как активные подписчики рассылки (active = 1) и как премиум-пользователи с планом 'pro'. Отсортируйте по алфавиту.

Шпаргалка

INTERSECT возвращает только те строки, которые присутствуют в обоих наборах результатов (дубликаты удаляются, столбцы должны совпадать):

SELECT email FROM newsletter_subs
INTERSECT
SELECT email FROM premium_users

Используйте INTERSECT вместо JOIN, когда нужно сопоставить целые строки в двух простых SELECT.

Попробуйте сами

-- отфильтровать каждую сторону перед INTERSECT
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Продвинутый уровень