Skip to content

Пересечение запросов

В качестве тестовых данных будем использовать таблицы из примера про разность запросов.

Для получения пересечения данных между двумя запросами используется оператор INTERSECT. Он возвращает уникальные строки, которые присутствуют как в первом, так и во втором запросе.

Ограничения при использовании INTERSECT такие же, как и при использовании UNION и MINUS:

  • Оба запроса должны возвращать одинаковое количество колонок
  • Типы данных в колонках должны совпадать.

Получим список моделей автомобилей, которые есть и в автопарке, и в списке предлагаемых для покупки моделей:

sql
select car_model, release_year
from cars

INTERSECT

select car_model, release_year
from car_offers
select car_model, release_year
from cars

INTERSECT

select car_model, release_year
from car_offers

Как и в случае с MINUS, INTERSECT убрал дубликаты и оставил только одну модель авто, которая встречается и в таблице cars(2 раза), и в таблице car_offers(1 раз).