Riepilogo :in questo tutorial imparerai come usare SQLite UNION
operatore per combinare set di risultati di due o più query in un unico set di risultati.
Introduzione a SQLite UNION
operatore
A volte, è necessario combinare i dati di più tabelle in un set di risultati completo. Potrebbe essere per tabelle con dati simili all'interno dello stesso database o forse è necessario combinare dati simili da più database.
Per combinare righe di due o più query in un unico set di risultati, utilizza SQLite UNION
operatore. Quanto segue illustra la sintassi di base di UNION
operatore:
query_1
UNION [ALL]
query_2
UNION [ALL]
query_3
...;
Code language: SQL (Structured Query Language) (sql)
Entrambi UNION
e UNION ALL
gli operatori combinano le righe dei set di risultati in un unico set di risultati. Il UNION
l'operatore rimuove elimina le righe duplicate, mentre UNION ALL
l'operatore no.
Perché il UNION ALL
l'operatore non rimuove le righe duplicate, funziona più velocemente di UNION
operatore.
Di seguito sono riportate le regole per l'unione dei dati:
- Il numero di colonne in tutte le query deve essere lo stesso.
- Le colonne corrispondenti devono avere tipi di dati compatibili.
- I nomi delle colonne della prima query determinano i nomi delle colonne del set di risultati combinato.
- Il
GROUP BY
eHAVING
le clausole vengono applicate a ogni singola query, non al set di risultati finale. - Il
ORDER BY
La clausola viene applicata al set di risultati combinato, non all'interno del set di risultati individuale.
Nota che la differenza tra UNION
e JOIN
ad esempio, INNER JOIN
o LEFT JOIN
è che il JOIN
la clausola combina colonne da più tabelle correlate, mentre UNION
combina righe da più tabelle simili.
Supponiamo di avere due tabelle t1 e t2 con le seguenti strutture:
CREATE TABLE t1(
v1 INT
);
INSERT INTO t1(v1)
VALUES(1),(2),(3);
CREATE TABLE t2(
v2 INT
);
INSERT INTO t2(v2)
VALUES(2),(3),(4);
Code language: SQL (Structured Query Language) (sql)
L'istruzione seguente combina i set di risultati della tabella t1 e t2 utilizzando UNION
operatore:
SELECT v1
FROM t1
UNION
SELECT v2
FROM t2;
Code language: SQL (Structured Query Language) (sql)
Ecco l'output:

L'immagine seguente illustra il UNION
funzionamento delle tabelle t1 e t2:

L'istruzione seguente combina i set di risultati della tabella t1 e t2 utilizzando UNION ALL
operatore:
SELECT v1
FROM t1
UNION ALL
SELECT v2
FROM t2;
Code language: SQL (Structured Query Language) (sql)
L'immagine seguente mostra l'output:

L'immagine seguente illustra il UNION ALL
funzionamento dei set di risultati delle tabelle t1 e t2:

SQLite UNION
esempi
Prendiamo alcuni esempi di utilizzo di UNION
operatore.
1) SQLite UNION
esempio
Questa istruzione utilizza il UNION
operatore per combinare i nomi di dipendenti e clienti in un unico elenco:
SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers;
Code language: SQL (Structured Query Language) (sql)
Ecco l'output:

2) SQLite UNION
con ORDER BY
esempio
Questo esempio usa UNION
operatore per combinare i nomi dei dipendenti e dei clienti in un unico elenco. Inoltre, utilizza il ORDER BY
clausola per ordinare l'elenco dei nomi per nome e cognome.
SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers
ORDER BY FirstName, LastName;
Code language: SQL (Structured Query Language) (sql)
Ecco l'output:

In questo tutorial, hai imparato a usare SQLite UNION
per combinare le righe dei set di risultati in un unico set di risultati. Hai anche imparato le differenze tra UNION
e UNION ALL
operatori.