ОсновыСредний
UNION / UNION ALL
Объединяет результаты двух SELECT в один. UNION убирает дубли, UNION ALL оставляет все строки.
Синтаксис
SELECT col FROM t1
UNION [ALL]
SELECT col FROM t2;Объяснение
UNION требует одинакового числа колонок и совместимых типов в обоих SELECT.
UNION удаляет дубликаты (медленнее — нужна сортировка). UNION ALL просто склеивает — быстрее. Если дублей нет или они допустимы — всегда используй UNION ALL.
Пример
-- Объединить активных и VIP пользователей без дублей
SELECT id, name FROM active_users
UNION
SELECT id, name FROM vip_users
ORDER BY name;Связанные термины
Анекдоты по теме
Пользователь: — Почему мой запрос ничего не вернул? DBA: — А ты проверил регистр? Пользователь: — Да. DBA: — А пробелы? Пользователь: — Да. DBA: — А кодировку? Пользователь: — О господи...
— Мой запрос работает 10 секунд. Как ускорить? — Покажи EXPLAIN ANALYZE. — Вот: Seq Scan, cost=0..999999. — Индекс. — Уже 0.5 секунды. — Теперь смотри на остальные узлы.
— Мой EXPLAIN показывает Seq Scan. — Добавь индекс. — Добавил. Всё равно Seq Scan. — Сколько строк в таблице? — 50. — Оптимизатор умнее тебя. При 50 строках индекс медленнее.