SQLite
 sql >> Database >  >> RDS >> SQLite

Operatore SQLite UNION

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.