Resumo : neste tutorial, você aprenderá como usar UNION
o operador SQLite para combinar conjuntos de resultados de duas ou mais consultas em um único conjunto de resultados.
UNION
Introdução ao operador SQLite
Às vezes, você precisa combinar dados de diversas tabelas em um conjunto de resultados completo. Pode ser para tabelas com dados semelhantes no mesmo banco de dados ou talvez você precise combinar dados semelhantes de vários bancos de dados.
Para combinar linhas de duas ou mais consultas em um único conjunto de resultados, você usa UNION
o operador SQLite. O seguinte ilustra a sintaxe básica do UNION
operador:
query_1
UNION [ALL]
query_2
UNION [ALL]
query_3
...;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Os operadores UNION
e UNION ALL
combinam linhas de conjuntos de resultados em um único conjunto de resultados. O UNION
operador remove e elimina linhas duplicadas, enquanto o UNION ALL
operador não o faz.
Como o UNION ALL
operador não remove linhas duplicadas, ele é executado mais rapidamente que o UNION
operador.
A seguir estão as regras para unir dados:
- O número de colunas em todas as consultas deve ser o mesmo.
- As colunas correspondentes devem ter tipos de dados compatíveis.
- Os nomes das colunas da primeira consulta determinam os nomes das colunas do conjunto de resultados combinado.
- As cláusulas
GROUP BY
eHAVING
são aplicadas a cada consulta individual, não ao conjunto de resultados final. - A
ORDER BY
cláusula é aplicada ao conjunto de resultados combinado e não ao conjunto de resultados individual.
Observe que a diferença entre UNION
e, JOIN
por exemplo, INNER JOIN
ou LEFT JOIN
é que a JOIN
cláusula combina colunas de várias tabelas relacionadas, enquanto UNION
combina linhas de várias tabelas semelhantes.
Suponha que temos duas tabelas t1 e t2 com as seguintes estruturas:
CREATE TABLE t1(
v1 INT
);
INSERT INTO t1(v1)
VALUES(1),(2),(3);
CREATE TABLE t2(
v2 INT
);
INSERT INTO t2(v2)
VALUES(2),(3),(4);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A instrução a seguir combina os conjuntos de resultados da tabela t1 e t2 usando o UNION
operador:
SELECT v1
FROM t1
UNION
SELECT v2
FROM t2;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Aqui está a saída:
A imagem a seguir ilustra o UNION
funcionamento das tabelas t1 e t2:
A instrução a seguir combina os conjuntos de resultados das tabelas t1 e t2 usando o UNION ALL
operador:
SELECT v1
FROM t1
UNION ALL
SELECT v2
FROM t2;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A imagem a seguir mostra a saída:
A imagem a seguir ilustra o UNION ALL
funcionamento dos conjuntos de resultados das tabelas t1 e t2:
UNION
Exemplos de SQLite
Vejamos alguns exemplos de uso do UNION
operador.
1) UNION
Exemplo SQLite
Esta instrução utiliza o UNION
operador para combinar nomes de funcionários e clientes em uma única lista:
SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Aqui está a saída:
2) SQLite UNION
com ORDER BY
exemplo
Este exemplo usa o UNION
operador para combinar os nomes dos funcionários e clientes em uma única lista. Além disso, ele usa a ORDER BY
cláusula para classificar a lista de nomes por nome e sobrenome.
SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers
ORDER BY FirstName, LastName;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Aqui está a saída:
Neste tutorial, você aprendeu como usar UNION
o operador SQLite para combinar linhas de conjuntos de resultados em um único conjunto de resultados. Você também aprendeu as diferenças entre os operadores UNION
e UNION ALL
.