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.