SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Operador SQLite UNION


No SQLite, o UNION operador cria um composto SELECT instrução que retorna os resultados do SELECT esquerdo e direito declarações. Em outras palavras, ele combina os resultados de duas consultas em um único conjunto de resultados.

Exemplo


Suponha que temos as seguintes tabelas:
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 o UNION operador para devolver todos os professores e alunos:
SELECT TeacherName FROM Teachers
UNION
SELECT StudentName FROM Students;

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

Por padrão, o UNION operador aplica implicitamente um DISTINCT Operação. Em outras palavras, ele retorna apenas valores distintos por padrão. Portanto, os resultados acima contêm apenas um de Warren, Cathy e Bill. Isso apesar do fato de que as tabelas combinadas na verdade contêm dois Warrens, dois Cathys e três Bills (há dois professores chamados Cathy, um professor e um cliente chamados Warren, e dois chamados Bill, bem como um aluno chamado Bill).

Incluir duplicatas


Podemos usar o ALL palavra-chave para incluir valores duplicados nos 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       

Desta vez, obtivemos doze linhas em vez das oito que obtivemos em nosso primeiro exemplo.

Podemos ver que ambas as Cathys foram devolvidas e todos os três Bills foram devolvidos.