sql >> Database >  >> RDS >> SQLite

SQLite UNION-operator

In SQLite, de UNION operator maakt een samengestelde SELECT statement dat de resultaten van de linker en rechter SELECT . geeft verklaringen. Met andere woorden, het combineert de resultaten van twee zoekopdrachten in een enkele resultatenset.

Voorbeeld

Stel dat we de volgende tabellen hebben:

SELECT * FROM Teachers;
SELECT * FROM Students;

Resultaat:

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       

We kunnen de UNION . gebruiken operator om alle docenten en studenten terug te sturen:

SELECT TeacherName FROM Teachers
UNION
SELECT StudentName FROM Students;

Resultaat:

TeacherName
-----------
Ben        
Bill       
Cathy      
Ein        
Faye       
Jet        
Spike      
Warren     

Standaard is de UNION operator past impliciet een DISTINCT toe operatie. Met andere woorden, het retourneert standaard alleen afzonderlijke waarden. Dus de bovenstaande resultaten bevatten slechts één van Warren, Cathy en Bill. Dit ondanks het feit dat de gecombineerde tabellen eigenlijk twee Warrens, twee Cathys en drie Bills bevatten (er zijn twee docenten genaamd Cathy, een docent en een klant genaamd Warren, en twee genaamd Bill, evenals een student genaamd Bill).

Duplicaten opnemen

We kunnen de ALL . gebruiken zoekwoord om dubbele waarden in de resultaten op te nemen:

SELECT TeacherName FROM Teachers
UNION ALL
SELECT StudentName FROM Students;

Resultaat:

TeacherName
-----------
Warren     
Ben        
Cathy      
Cathy      
Bill       
Bill       
Faye       
Jet        
Spike      
Ein        
Warren     
Bill       

Deze keer kregen we twaalf rijen in plaats van de acht die we in ons eerste voorbeeld kregen.

We kunnen zien dat beide Cathy's zijn geretourneerd en alle drie de rekeningen zijn geretourneerd.


  1. PHP PDO voorbereide verklaring -- MySQL LIKE query

  2. Een API aanroepen vanuit de opgeslagen procedure van SQL Server

  3. Hoe beïnvloedt het zoekpad de resolutie van de ID en het huidige schema?

  4. Correcte manier om LIKE '%{$var}%' te gebruiken met voorbereide verklaringen? [mysqli]