В этом руководстве мы узнаем, как использовать предложение SQL UNION для объединения результатов двух или более операторов SELECT в один набор результатов.
На следующем рисунке показан обзор запроса SQL UNION:
Синтаксис объединения SQL
Ниже показан синтаксис для объединения двух операторов select с использованием предложения UNION:
ВЫБРАТЬ
столбец_1,
столбец_2,
...col_N
ИЗ
таблица_1
СОЮЗ
ВЫБРАТЬ
столбец_1,
столбец_2,
...col_N
ИЗ
таблица_2;
Перед выполнением запроса на объединение должны быть выполнены следующие требования:
- Количество столбцов в каждом операторе select должно быть одинаковым.
- Столбец в одной и той же позиции в каждом операторе select должен иметь аналогичный тип данных.
- Порядок столбцов должен быть правильным во всех операторах select.
Давайте проиллюстрируем, как мы можем использовать запрос UNION с реальной таблицей.
Таблица 1:
Ниже показаны столбцы и данные в первой таблице:
id|имя_сервера |адрес |установленная_версия|
--+-------------+---------------+-----------------+
1|SQL Server |localhost:1433|15.0 |
2|Elasticsearch|localhost:9200|8.4.3 |
3|Redis |localhost:6379|6.0 |
4|PostgreSQL |localhost:5432|14.5 |
Таблица 2:
Структура и записи второй таблицы показаны ниже:
id|tool |version|лицензия |--+---------------------------------+---------------------+----- ----- +
1|SQL Server Management Studio|18.0 |коммерческая|
2|Кибана |7.17.7 |бесплатно |
3|DBeaver |22.2 |Enterprise|
4|DataGrip |2022.2 |Commercial|
Таблицы SQL UNION
Мы можем выполнить операцию UNION над значениями обеих таблиц, как показано в следующем запросе:
ВЫБРАТЬИМЯ СЕРВЕРА,
УСТАНОВЛЕНА_ВЕРСИЯ
ИЗ
STACK_MAPPING
СОЮЗ
ВЫБРАТЬ
ИНСТРУМЕНТ,
ВЕРСИЯ
ИЗ
СОЕДИНИТЕЛЬ;
Это должно объединить запросы и вернуть таблицу следующим образом:
server_name |installed_version|----------------------------+---+
SQL Server |15.0 |
Elasticsearch |8.4.3 |
Redis |6.0 |
PostgreSQL |14.5 |
SQL Server Management Studio|18.0 |
Кибана | 7.17.7 |
DBeaver |22.2 |
DataGrip |2022.2 |
Вывод
В этой статье представлены основы работы с предложением UNION в SQL для объединения результатов двух или более операторов SELECT. Не стесняйтесь проверять другие учебники для получения дополнительной информации.