← Назад к вопросам

Для чего нужен UNION?

1.3 Junior🔥 151 комментариев
#Базы данных и SQL

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

UNION в SQL

UNION — оператор для объединения результатов двух или более SELECT запросов в один результат. Это полезно когда нужно комбинировать данные из разных таблиц или запросов.

Синтаксис

SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;

UNION vs UNION ALL

UNION — удаляет дубликаты UNION ALL — оставляет все строки, включая дубликаты

Пример: объединение двух таблиц

SELECT name, email FROM users_active
UNION
SELECT name, email FROM users_archived;

Результат содержит всех пользователей (активных и архивных), без дубликатов.

Практический пример

Есть две таблицы: online_users и offline_users.

SELECT 
  user_id, 
  name, 
  online as status
FROM online_users
UNION
SELECT 
  user_id, 
  name, 
  offline as status
FROM offline_users
ORDER BY name;

Важные правила

  1. Одинаковое количество столбцов Оба SELECT должны вернуть одинаковое количество столбцов.

  2. Совместимые типы данных Типы данных в соответствующих столбцах должны быть совместимы.

  3. Имена столбцов Результат использует имена из первого SELECT.

Пример с разными таблицами

SELECT id, name, product as type FROM products
UNION
SELECT id, title, article as type FROM articles;

Это объединяет товары и статьи в один список.

UNION ALL для производительности

SELECT * FROM table1
UNION ALL
SELECT * FROM table2;

Это быстрее чем UNION, так как не удаляет дубликаты. Используй если уверен что дубликатов нет.

Использование с WHERE

SELECT name FROM users WHERE status = active
UNION
SELECT name FROM users WHERE status = premium;

Для QA инженера

При тестировании API с объединением данных:

GET /api/v1/people?include=active,archived

Проверяю:

  1. Результат содержит и активных и архивных
  2. Нет дубликатов
  3. Все поля присутствуют
  4. Порядок правильный (если есть сортировка)

UNION используется для комбинирования разных источников данных в один результат.

Для чего нужен UNION? | PrepBro