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

SQLite UNION-operatør

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.


  1. SQL Server 2008 tusinde separator for en kolonne

  2. SQLite JSON_TYPE()

  3. Bedste praksis i skalering af databaser:Del 1

  4. Opdater SQL med fortløbende nummerering