Ответ
Оператор UNION используется для объединения результирующих наборов двух или более SELECT-запросов в один, удаляя дублирующиеся строки.
Ключевые правила:
- Количество и порядок столбцов во всех
SELECTдолжны совпадать. - Типы данных соответствующих столбцов должны быть совместимы.
- Имена столбцов в итоговом наборе берутся из первого запроса.
Пример:
-- Получить уникальные имена всех сотрудников и подрядчиков
SELECT first_name FROM employees
UNION
SELECT name FROM contractors
ORDER BY first_name;
Важное отличие от UNION ALL: UNION выполняет дорогостоящую операцию сортировки и дедупликации. Если дубликаты не нужно удалять или их гарантированно нет, используйте UNION ALL для значительного повышения производительности, так как он просто склеивает результаты.
-- Получить ВСЕ имена, включая повторяющиеся
SELECT first_name FROM employees
UNION ALL
SELECT name FROM contractors;