sql >> Base de Datos >  >> RDS >> SQLite

Operador SQLite UNION

En SQLite, la UNION operador crea un compuesto SELECT declaración que devuelve los resultados de la izquierda y la derecha SELECT declaraciones. En otras palabras, combina los resultados de dos consultas en un único conjunto de resultados.

Ejemplo

Supongamos que tenemos las siguientes tablas:

SELECT * FROM Teachers;
SELECT * FROM Students;

Resultado:

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       

Podemos usar la UNION operador para devolver a todos los profesores y estudiantes:

SELECT TeacherName FROM Teachers
UNION
SELECT StudentName FROM Students;

Resultado:

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

De forma predeterminada, UNION operador aplica implícitamente un DISTINCT operación. En otras palabras, devuelve solo valores distintos de forma predeterminada. Entonces, los resultados anteriores contienen solo uno de Warren, Cathy y Bill. Esto es a pesar del hecho de que las tablas combinadas en realidad contienen dos Warren, dos Cathy y tres Bill (hay dos maestros llamados Cathy, un maestro y un cliente llamado Warren, y dos llamados Bill, así como un estudiante llamado Bill).

Incluir duplicados

Podemos usar el ALL palabra clave para incluir valores duplicados en los resultados:

SELECT TeacherName FROM Teachers
UNION ALL
SELECT StudentName FROM Students;

Resultado:

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

Esta vez obtuvimos doce filas en lugar de las ocho que obtuvimos en nuestro primer ejemplo.

Podemos ver que ambos Cathys fueron devueltos y los tres Bills fueron devueltos.