SQL UNION Оператор
Оператор Union SQL
Оператор UNION используется для объединения результирующего набора двух или более инструкций SELECT.
- Каждая инструкция SELECT внутри Union должна иметь одинаковое количество столбцов
- Столбцы также должны иметь схожие типы данных
- Столбцы в каждой инструкции SELECT также должны быть в том же порядке
UNION Синтаксис
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
UNION ALL Синтаксис
Оператор Union выбирает по умолчанию только отдельные значения. Чтобы разрешить повторяющиеся значения, используйте объединение ALL:
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
Примечание: Имена столбцов в результирующем наборе обычно равны именам столбцов в первой инструкции SELECT в Union.
Демонстрационная база данных
В этом учебнике мы будем использовать хорошо известную базу данных Northwind Sample.
Ниже представлен выбор из таблицы "Customers":
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
И выбор из таблицы «Поставщики»:
SupplierID | SupplierName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Exotic Liquid | Charlotte Cooper | 49 Gilbert St. | London | EC1 4SD | UK |
2 | New Orleans Cajun Delights | Shelley Burke | P.O. Box 78934 | New Orleans | 70117 | USA |
3 | Grandma Kelly's Homestead | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 48104 | USA |
Пример объединения SQL
Следующая инструкция SQL выбирает все различные города (только отдельные значения) от "Customers" и "поставщики":
Пример
SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;
Примечание: Если некоторые клиенты или поставщики имеют один и тот же город, то каждый город будет указан только один раз, поскольку Union выбирает только отдельные значения. Используйте UNION ALL для выбора повторяющихся значений!
SQL UNION все примеры
Следующая инструкция SQL выбирает все города (повторяющиеся значения также) от "Customers" и "поставщики":
Пример
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
SQL UNION с где
Следующая инструкция SQL выбирает все различные немецкие города (только отдельные значения) от "Customers" и "поставщики":
Пример
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
SQL UNION все с где
Следующая инструкция SQL выбирает все немецкие города (повторяющиеся значения также) от "Customers" и "поставщики":
Пример
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
Другой пример объединения
В следующей инструкции SQL перечислены все клиенты и поставщики:
Пример
SELECT 'Customer' As Type, ContactName, City, Country
FROM Customers
UNION
SELECT 'Supplier', ContactName, City, Country
FROM Suppliers;