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» и содержимым дополнительных товаров:
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
Результат:
преном | 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:
ВЫБЕРИТЕ ОТЛИЧНЫЙ
пр.