UNION Operator

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:

Опитайте сами »