I SQLite, UNION
operatorn skapar en sammansatt SELECT
sats som returnerar resultatet av vänster och höger SELECT
uttalanden. Med andra ord, den kombinerar resultaten från två frågor till en enda resultatuppsättning.
Exempel
Anta att vi har följande tabeller:
SELECT * FROM Teachers;
SELECT * FROM Students;
Resultat:
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
Vi kan använda UNION
operatör för att returnera alla lärare och elever:
SELECT TeacherName FROM Teachers
UNION
SELECT StudentName FROM Students;
Resultat:
TeacherName ----------- Ben Bill Cathy Ein Faye Jet Spike Warren
Som standard är UNION
operatorn tillämpar implicit en DISTINCT
drift. Med andra ord returnerar den endast distinkta värden som standard. Så ovanstående resultat innehåller bara ett vardera av Warren, Cathy och Bill. Detta trots att de kombinerade tabellerna faktiskt innehåller två Warrens, två Cathys och tre Bills (det finns två lärare som heter Cathy, en lärare och en kund som heter Warren, och två som heter Bill, samt en elev som heter Bill).
Inkludera dubbletter
Vi kan använda ALL
sökord för att inkludera dubbletter av värden i resultaten:
SELECT TeacherName FROM Teachers
UNION ALL
SELECT StudentName FROM Students;
Resultat:
TeacherName ----------- Warren Ben Cathy Cathy Bill Bill Faye Jet Spike Ein Warren Bill
Den här gången fick vi tolv rader istället för de åtta som vi fick i vårt första exempel.
Vi kan se att båda Cathys returnerades och alla tre räkningarna returnerades.