ПЕРЕСЕЧАТЬ И ПЕРЕСЕЧАТЬ ВСЕ В POSTGRESQL

  • Михаил
  • 12 мин. на прочтение
  • 196
  • 11 Nov 2022
  • 11 Nov 2022

Intersect в Postgresql возвращает общие строки двух или более таблиц. Intersect удаляет дубликат после объединения. Пересечение всех не удаляет дубликаты.

И INTERSECT, и INTERSECT ALL в Postgresql возвращают общие строки двух разных SQL. Они отличаются способом обработки дубликатов.

INTERSECT в Postgresql: выполняет DISTINCT для набора результатов, возвращает общие строки двух разных таблиц.

Пересечение в Postgresql 1

INTERSECT ALL в Postgresql: intersect all возвращает общую строку, но не удаляет дубликаты

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

Таблица 1: SummerFruits

Пересечение в Postgresql 1

Таблица 2: Фрукты

Пересечение в Postgresql 2

 

ПЕРЕСЕЧЕНИЕ в Postgresql:

SELECT * FROM SummerFruits
INTERSECT
SELECT * FROM Fruits

INTERSECT получает общую строку из обеих таблиц, а также удаляет дубликаты, поэтому результирующая таблица будет

Пересечение в Postgresql 3

ПЕРЕСЕЧАТЬ ВСЕ в Postgresql:

SELECT * FROM SummerFruits
INTERSECT ALL
SELECT * FROM Fruits

INTERSECT ALL получает общую строку из обеих таблиц, не удаляет дубликаты, поэтому результирующая таблица будет

Пересечение в Postgresql 5