SQL Операторът UNION се използва за комбиниране на набор от резултати от два или повече SELECT израза.
- Всеки SELECT в рамките на UNION трябва да има еднакъв брой колони
- Колоните също така трябва да имат еднакви типове данни
- Колоните във всеки SELECT трябва също да са в един и същи ред на подредба
Синтаксис на UNION
Синтаксис на UNION ALL
По подразбиране операторът UNION избира само стойности, които се различават. За да позволите дублиране на стойности, използвайте UNION ALL:
Забележка: Имената на колоните в набора от резултати обикновено са същите като на имената на колоните в първия SELECT израз в UNION.
Демо база данни
В този урок ще използваме добре известната примерна база данни Northwind.
По-долу има селекция от таблицата „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 |
И селекция от таблицата „Suppliers“:
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 UNION Пример
Следният SQL израз избира всички City(градове – само с такива стойности, които се различават) от „Customers“ и „Suppliers“:
Забележка: Ако някои Customers(клиенти) или Suppliers(доставчици) съвпадат с един и същ град, всеки град ще бъде посочен само веднъж, защото UNION избира само отделни стойности. Използвайте UNION ALL за да изберете дублиращи се стойности!
Пример със UNION ALL
Следният SQL израз избира всички градове (също и дублиращите се) от „Customers“ и „Suppliers“:
SQL UNION със WHERE
Следният SQL израз избира всички различни „немски“ City(градове – само отделните стойности) от „Customers“ и „Suppliers“:
SQL UNION ALL със WHERE
Следният SQL израз избира всички немски градове (със дублиращи се стойности) от „Customers“ и „Suppliers“:
Друг пример със UNION
Следната SQL заявка съдържа списък на всички Customers и Suppliers: