sql >> Databasteknik >  >> RDS >> SQLite

SQLite UNION-operatör

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.


  1. Hur QUARTER() fungerar i MariaDB

  2. Felaktigt heltal (2147483647) har infogats i MySQL?

  3. Hur man ansluter fjärransluten MySQL-databas i PHP

  4. Rätt sätt att hantera dubbelriktad 1:m i Green-DAO