SQL set operations (операции над множествами) объединяют результаты двух или более запросов, которые имеют одинаковую структуру столбцов (одинаковое количество столбцов и совместимые типы данных).
UNION объединяет результаты обоих запросов и автоматически удаляет дублирующиеся строки.
SELECT city FROM customers
UNION
SELECT city FROM suppliers;
Используй это, когда тебе нужен чистый, без дубликатов список объединённых результатов.
UNION ALL объединяет результаты обоих запросов, но сохраняет все дублирующиеся строки. Это быстрее, чем UNION, потому что пропускает шаг удаления дубликатов.
SELECT city FROM customers
UNION ALL
SELECT city FROM suppliers;
Используй это, когда дубликаты допустимы или когда производительность — приоритет.
INTERSECT возвращает только строки, которые присутствуют в обоих результатах запросов.
SELECT city FROM customers
INTERSECT
SELECT city FROM suppliers;
Используй это для поиска общих записей между двумя наборами данных.
EXCEPT (называется MINUS в Oracle) возвращает строки из первого запроса, которые не встречаются во втором запросе.
SELECT city FROM customers
EXCEPT
SELECT city FROM suppliers;
Используй это для поиска записей, уникальных для первого набора данных — например, чтобы найти клиентов, которые не являются поставщиками.
UNION ALL работает быстрее чем UNION, потому что пропускает шаг дедупликации, который должен выполнить UNION.
Новый — ещё не проверен сообществом
Вы