Gymterview
junior

Для чего применяется ключевое слово UNION?

UNION объединяет результаты двух или более SELECT-запросов в единый результирующий набор. Оба запроса должны возвращать одинаковое число столбцов, а типы данных в соответствующих позициях должны быть совместимы.

Оператор Дубликаты Производительность
UNION Удаляет дубликаты (неявный DISTINCT) Медленнее (требуется сортировка/хэширование)
UNION ALL Сохраняет дубликаты Быстрее
Пример
-- Объединение клиентов и поставщиков в один список
SELECT name, city FROM customers
UNION
SELECT name, city FROM suppliers
ORDER BY name;

UNION сам по себе не гарантирует порядок записей — записи из второго запроса могут оказаться в любом месте результата. Для определённого порядка необходимо использовать ORDER BY, который ставится только после последнего SELECT и применяется ко всему объединённому результату.

На практике, если вы уверены, что дубликатов нет, или дубликаты допустимы, всегда предпочитайте UNION ALL — он работает быстрее, так как не тратит ресурсы на удаление дубликатов.

На собеседовании: обязательно упомяните разницу между UNION и UNION ALL. Частая ошибка — использовать UNION (с удалением дубликатов) там, где достаточно UNION ALL, создавая лишнюю нагрузку.