SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLite UNION-Operator

In SQLite die UNION Operator erstellt ein zusammengesetztes SELECT -Anweisung, die die Ergebnisse des linken und rechten SELECT zurückgibt Aussagen. Mit anderen Worten, es kombiniert die Ergebnisse von zwei Abfragen in einer einzigen Ergebnismenge.

Beispiel

Angenommen, wir haben die folgenden Tabellen:

SELECT * FROM Teachers;
SELECT * FROM Students;

Ergebnis:

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       

Wir können die UNION verwenden Operator, um alle Lehrer und Schüler zurückzugeben:

SELECT TeacherName FROM Teachers
UNION
SELECT StudentName FROM Students;

Ergebnis:

TeacherName
-----------
Ben        
Bill       
Cathy      
Ein        
Faye       
Jet        
Spike      
Warren     

Standardmäßig ist die UNION Operator wendet implizit ein DISTINCT an Betrieb. Mit anderen Worten, es gibt standardmäßig nur eindeutige Werte zurück. Die obigen Ergebnisse enthalten also jeweils nur einen von Warren, Cathy und Bill. Dies trotz der Tatsache, dass die kombinierten Tische tatsächlich zwei Warrens, zwei Cathys und drei Bills enthalten (es gibt zwei Lehrer namens Cathy, einen Lehrer und einen Kunden namens Warren und zwei namens Bill sowie einen Schüler namens Bill).

Duplikate einschließen

Wir können den ALL verwenden Schlüsselwort, um doppelte Werte in die Ergebnisse aufzunehmen:

SELECT TeacherName FROM Teachers
UNION ALL
SELECT StudentName FROM Students;

Ergebnis:

TeacherName
-----------
Warren     
Ben        
Cathy      
Cathy      
Bill       
Bill       
Faye       
Jet        
Spike      
Ein        
Warren     
Bill       

Dieses Mal haben wir zwölf Zeilen statt der acht, die wir in unserem ersten Beispiel bekommen haben.

Wir können sehen, dass beide Cathys zurückgegeben wurden und alle drei Rechnungen zurückgegeben wurden.