Sql select union: UNION (Transact-SQL) — SQL Server

SQL UNION — SQL

Команда UNION SQL разрешает обмен данными между результатами дополнительных запросов с использованием мема команды SELECT. C’est donc une commande qui permet de concaténer les résultats de 2 requêtes ou plus. Pour l’utiliser il est nécessaire que chacune des requêtes à concaténer retournes le même nombre de colonnes, avec les memes type de données et dans le meme ordre.

A savoir : par défaut, les enregistrements required identiques ne seront pas répétés dans les résultats. Pour effectuer une union dans laquelle même les lignes dupliquées sont affichées il faut plutôt utiliser la commande UNION ALL.

Синтаксис

Синтаксис для унифицированных результатов 2 таблиц без аффирмации дублонов est la suivante:

 SELECT * FROM table1
СОЮЗ
ВЫБЕРИТЕ * ИЗ таблицы 2 

Объяснение схемы

Объединение 2 ансамблей A и лучшая концепция, которая состоит из всех элементов, соответствующих корреспонденту à la fois à l’ensemble A или à l’ensemble B. Cela se résume très Simplement par un petit schéma où la zone en bleu соответствует à la zone que l’ont souhaite obtenir (dans notre cas: tous les éléments).

Union de 2 ансамбли

Exemple

Imaginons une entreprise qui possède plusieurs et dans chacun de ces magasins il y a une table qui liste les client.

Таблица магазина № 1 с приложением «magasin1_client» и содержимым дополнительных товаров:

9 0029 date_naissance

9 0043 75

9009 1

La table du magasin n°2 appelle «magasin2_client» et contient les données suivantes:

prenom nom ville total_achat
Леон Дюпюи Париж 1983-03-06 135
Мари Бернар Париж 1993-07-03
Софи Дюпон Марсель 1986-02-22 27
Марсель Мартин Париж 1976-11-24 39
prenom nom ville date_naissance total_achat
Марион Лерой Лион 1982-10-27 285
Поль Моро Лион 1976-04-19 133
Мари Бернар Париж 1993-07-0 3 75
Марсель Мартин Париж 1976-11-24 39

Sachant que уверенные клиенты не представляют dans les 2 стола, для удобства использования запросить СОЮЗ. Запрос SQL оценивается следующим образом:

 SELECT * FROM magasin1_client
СОЮЗ
SELECT * FROM magasin2_client 

Результат:

90 039

преномnom ville date_naissance total_achat
Léon Dupuis Paris 1983-03-06 135
Мари Бернар Париж 1993-07- 03 75
Софи Дюпон Марсель 1986-02-22 27
Марсель Мартин Париж 1976-11-24 39
Мари Лерой Лион 1982-10-27 285
Пол Морей Лион 1976-04-19 133

Результат этого запроса содержит 2 запроса на регистрацию по 2 запросам, которые не включают в себя дополнительные сведения о мемах.

Как применить UNION и UNION ALL с помощью SQL — Data to Fish

20 августа 2021 г.

Вы можете использовать следующий синтаксис, чтобы применить UNION и UNION ALL с помощью SQL:

(1) Применить UNION при удалении дубликатов:

 SELECT column_1, column_2,... FROM table_1
СОЮЗ
ВЫБЕРИТЕ столбец_1, столбец_2,... ИЗ таблицы_2
 

(2) Применить UNION ALL, сохраняя дубликаты:

 SELECT column_1, column_2,... FROM table_1
СОЮЗ ВСЕХ
ВЫБЕРИТЕ столбец_1, столбец_2,... ИЗ таблицы_2
 

Далее вы увидите несколько примеров с инструкциями по применению Union и Union All.

Действия по применению UNION с использованием SQL

Шаг 1. Найдите таблицы

Для начала найдите таблицы, которые вы хотите объединить.

Например, давайте объединим следующие две таблицы, где:

  • Имя первой таблицы: products_1
  • Имя второй таблицы: products _2

Так products_1 таблица будет выглядеть так:

product_name  цена
Компьютер 900
ТВ 1500
Принтер 200
Стол 350

А вот так будет выглядеть таблица products _2 :

имя_продукта  цена
Стул 150
Планшет 400
Принтер 200
Монитор 600

Обратите внимание, что третья запись (то есть запись «Принтер») идентична в обеих таблицах . Это повторяющееся значение будет удалено при предварительном формировании UNION. Однако он будет сохранен при выполнении UNION ALL.

Шаг 2. Применение объединения с использованием SQL

Вы можете использовать следующий шаблон для применения объединения с использованием SQL:

 ВЫБЕРИТЕ столбец_1, столбец_2,... ИЗ таблицы_1
СОЮЗ
ВЫБЕРИТЕ столбец_1, столбец_2,... ИЗ таблицы_2
 

Примечание. При применении объединения вам необходимо убедиться, что каждый запрос SELECT имеет одинаковое количество столбцов.

В контексте нашего примера объединение будет выглядеть так:

 ВЫБЕРИТЕ product_name, price FROM products_1
СОЮЗ
ВЫБЕРИТЕ product_name, цена ИЗ products_2
 

Запустите запрос, и вы получите следующий союз:

product_name  цена
Стул 150
Компьютер 900
Стол 350
Монитор 600
Принтер 200
Планшет 400
ТВ 1500

Вы увидите, что запись «Принтер» появляется только один раз (второй дубликат был удален при применении UNION).

Шаг 3 (необязательно): Применение условий Союза

После создания Союза вы можете применять дополнительные условия.

Допустим, вы хотите получить все записи, в которых цена >= 500 . В этом случае вы можете использовать приведенный ниже запрос, чтобы получить эти записи:

 ВЫБЕРИТЕ
пр.*
ОТ
(
ВЫБЕРИТЕ product_name, цена ИЗ products_1
СОЮЗ
ВЫБЕРИТЕ product_name, цена ИЗ products_2
) пр

ГДЕ цена >= 500
 

Запустите запрос, и вы получите:

product_name  цена
Компьютер 900
Монитор 600
ТВ 1500

Кроме того, вы можете заказать записи по полю «цена»:

 ВЫБЕРИТЕ
пр.*
ОТ
(
ВЫБЕРИТЕ product_name, цена ИЗ products_1
СОЮЗ
ВЫБЕРИТЕ product_name, цена ИЗ products_2
) пр

ЗАКАЗАТЬ ПО ЦЕНЕ
 

Затем вы увидите записи, упорядоченные по цене (в порядке возрастания):

product_name  цена
Стул 150
Принтер 200
Стол 350
Планшет 400
Монитор 600
Компьютер 900
ТВ 1500

Применить UNION ALL с помощью SQL

Для применения UNION ALL можно использовать следующий шаблон:

 ВЫБРАТЬ столбец_1, столбец_2,. .. ИЗ таблицы_1
СОЮЗ ВСЕХ
ВЫБЕРИТЕ столбец_1, столбец_2,... ИЗ таблицы_2
 

При использовании UNION ALL все повторяющиеся записи будут сохранены.

Вот запрос для нашего примера:

 ВЫБРАТЬ product_name, price FROM products_1
СОЮЗ ВСЕХ
ВЫБЕРИТЕ product_name, цена ИЗ products_2
 

Теперь вы заметите, что запись «Принтер» появляется дважды:

product_name  цена
Компьютер 900
ТВ 1500
Принтер 200
Стол 350
Стул 150
Планшет 400
Принтер 200
Монитор 600

Обратите внимание, что вы получите одинаковые результаты при применении UNION по сравнению с применением UNION ALL и DISTINCT:

 ВЫБЕРИТЕ ОТЛИЧНЫЙ
пр.