Operatore MySQL UNION
L'operatore MySQL UNION
L' UNION
operatore viene utilizzato per combinare il set di risultati di due o più
SELECT
istruzioni.
- Ogni
SELECT
istruzione all'internoUNION
deve avere lo stesso numero di colonne - Anche le colonne devono avere tipi di dati simili
- Anche le colonne in ogni
SELECT
istruzione devono essere nello stesso ordine
Sintassi UNION
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
UNION ALL Sintassi
L' UNION
operatore seleziona solo valori distinti per impostazione predefinita. Per consentire valori duplicati, utilizzare UNION ALL
:
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
Nota: i nomi delle colonne nel set di risultati sono generalmente uguali ai nomi delle colonne nella prima SELECT
istruzione.
Database dimostrativo
In questo tutorial utilizzeremo il noto database di esempio Northwind.
Di seguito una selezione dalla tabella "Clienti":
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 |
E una selezione dalla tabella "Fornitori":
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 |
Esempio di SQL UNION
La seguente istruzione SQL restituisce le città (solo valori distinti) dalla tabella "Clienti" e "Fornitori":
Esempio
SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;
Nota: se alcuni clienti o fornitori hanno la stessa città, ogni città verrà elencata una sola volta, poiché UNION
seleziona solo valori distinti. Utilizzare
UNION ALL
per selezionare anche valori duplicati!
SQL UNION ALL Esempio
La seguente istruzione SQL restituisce le città (anche valori duplicati) dalla tabella "Clienti" e "Fornitori":
Esempio
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
SQL UNION Con DOVE
La seguente istruzione SQL restituisce le città tedesche (solo valori distinti) sia dalla tabella "Clienti" che dalla tabella "Fornitori":
Esempio
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
SQL UNION TUTTO Con DOVE
La seguente istruzione SQL restituisce le città tedesche (anche valori duplicati) sia dalla tabella "Clienti" che dalla tabella "Fornitori":
Esempio
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
Un altro esempio dell'UNIONE
La seguente istruzione SQL elenca tutti i clienti e fornitori:
Esempio
SELECT 'Customer' AS Type, ContactName, City, Country
FROM Customers
UNION
SELECT 'Supplier', ContactName, City, Country
FROM Suppliers;
Notare il "Tipo AS" sopra: è un alias. Gli alias SQL vengono utilizzati per assegnare un nome temporaneo a una tabella oa una colonna. Un alias esiste solo per la durata della query. Quindi, qui abbiamo creato una colonna temporanea denominata "Tipo", che elenca se la persona di contatto è un "Cliente" o un "Fornitore".