Объединение запросов

Что такое объединение запросов: определение, основные принципы, примеры и практические советы. Изучайте SQL для тестировщиков с подробными объяснениями для начинающих специалистов.

Объединение запросов.

UNION — Результаты выполнения SQL запросов можно объединять. Для этого существует оператор.

SELECT поля_таблиц FROM список_таблиц ...
UNION [ALL]
SELECT поля_таблиц FROM список_таблиц ... ;

Практические примеры:

-- Объединение без дубликатов
SELECT name, email FROM users
UNION
SELECT name, email FROM customers;

-- Объединение с дубликатами
SELECT category FROM products
UNION ALL
SELECT category FROM archived_products;

-- Объединение с сортировкой
SELECT 'active' as status, COUNT(*) as count FROM active_users
UNION
SELECT 'inactive' as status, COUNT(*) as count FROM inactive_users
ORDER BY status;

-- INTERSECT - только совпадающие записи
SELECT email FROM users
INTERSECT
SELECT email FROM newsletter_subscribers;

-- EXCEPT - записи из первого запроса, которых нет во втором
SELECT email FROM users
EXCEPT
SELECT email FROM unsubscribed_users;

Существует два других оператора, чьё поведение крайне схоже с UNION:

  • INTERSECT Комбинирует два запроса SELECT, но возвращает записи только первого SELECT, которые имеют совпадения во втором элементе SELECT.
  • EXCEPT Комбинирует два запроса SELECT, но возвращает записи только первого SELECT, которые не имеют совпадения во втором элементе SELECT.