I SQLite er UNION
operatoren opretter en sammensat SELECT
sætning, der returnerer resultaterne af venstre og højre SELECT
udsagn. Med andre ord kombinerer den resultaterne fra to forespørgsler til et enkelt resultatsæt.
Eksempel
Antag, at vi har følgende 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 bruge UNION
operatør for at returnere alle lærere og elever:
SELECT TeacherName FROM Teachers
UNION
SELECT StudentName FROM Students;
Resultat:
TeacherName ----------- Ben Bill Cathy Ein Faye Jet Spike Warren
Som standard er UNION
operatør anvender implicit en DISTINCT
operation. Med andre ord returnerer det kun distinkte værdier som standard. Så ovenstående resultater indeholder kun én af hver af Warren, Cathy og Bill. Dette er på trods af, at de kombinerede tabeller faktisk indeholder to Warrens, to Cathys og tre Bills (der er to lærere, der hedder Cathy, en lærer og en kunde, der hedder Warren, og to, der hedder Bill, samt en elev, der hedder Bill).
Medtag dubletter
Vi kan bruge ALL
søgeord for at inkludere duplikerede værdier i resultaterne:
SELECT TeacherName FROM Teachers
UNION ALL
SELECT StudentName FROM Students;
Resultat:
TeacherName ----------- Warren Ben Cathy Cathy Bill Bill Faye Jet Spike Ein Warren Bill
Denne gang fik vi tolv rækker i stedet for de otte, som vi fik i vores første eksempel.
Vi kan se, at begge Cathys blev returneret, og alle tre regninger blev returneret.