In SQLite, il UNION
l'operatore crea un composto SELECT
istruzione che restituisce i risultati del SELECT
sinistro e destro dichiarazioni. In altre parole, combina i risultati di due query in un unico set di risultati.
Esempio
Supponiamo di avere le seguenti tabelle:
SELECT * FROM Teachers;
SELECT * FROM Students;
Risultato:
TeacherId TeacherName --------- ----------- 1 Warren 2 Ben 3 Cathy 4 Cathy 5 Bill 6 Bill StudentId StudentName --------- ----------- 1 Faye 2 Jet 3 Spike 4 Ein 5 Warren 6 Bill
Possiamo usare il UNION
operatore per restituire tutti gli insegnanti e gli studenti:
SELECT TeacherName FROM Teachers
UNION
SELECT StudentName FROM Students;
Risultato:
TeacherName ----------- Ben Bill Cathy Ein Faye Jet Spike Warren
Per impostazione predefinita, il UNION
l'operatore applica implicitamente un DISTINCT
operazione. In altre parole, restituisce solo valori distinti per impostazione predefinita. Quindi i risultati di cui sopra contengono solo uno ciascuno di Warren, Cathy e Bill. Questo nonostante il fatto che le tabelle combinate contengano effettivamente due Warren, due Cathy e tre Bill (ci sono due insegnanti chiamate Cathy, un'insegnante e un cliente chiamato Warren, e due chiamate Bill, oltre a uno studente chiamato Bill).
Includi duplicati
Possiamo usare il ALL
parola chiave per includere valori duplicati nei risultati:
SELECT TeacherName FROM Teachers
UNION ALL
SELECT StudentName FROM Students;
Risultato:
TeacherName ----------- Warren Ben Cathy Cathy Bill Bill Faye Jet Spike Ein Warren Bill
Questa volta abbiamo ottenuto dodici righe invece delle otto che abbiamo ottenuto nel nostro primo esempio.
Possiamo vedere che entrambi i Cathy sono stati restituiti e tutti e tre i Bill sono stati restituiti.