Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
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;
Важные правила
-
Одинаковое количество столбцов Оба SELECT должны вернуть одинаковое количество столбцов.
-
Совместимые типы данных Типы данных в соответствующих столбцах должны быть совместимы.
-
Имена столбцов Результат использует имена из первого 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
Проверяю:
- Результат содержит и активных и архивных
- Нет дубликатов
- Все поля присутствуют
- Порядок правильный (если есть сортировка)
UNION используется для комбинирования разных источников данных в один результат.