Resumo :neste tutorial, você aprenderá como usar SQLite
UNION
operador para combinar conjuntos de resultados de duas ou mais consultas em um único conjunto de resultados. Introdução ao SQLite UNION
operador
Às vezes, você precisa combinar dados de várias 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 SQLite
UNION
operador. O seguinte ilustra a sintaxe básica do UNION
operador:query_1
UNION [ALL]
query_2
UNION [ALL]
query_3
...;
Code language: SQL (Structured Query Language) (sql)
Ambos
UNION
e UNION ALL
operadores combinam linhas de conjuntos de resultados em um único conjunto de resultados. A UNION
O operador remove elimina linhas duplicadas, enquanto o UNION ALL
operador não. Porque o
UNION ALL
operador não remove linhas duplicadas, ele é executado mais rápido que o UNION
operador. A seguir estão as regras para dados de união:
- 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.
- O
GROUP BY
eHAVING
as cláusulas são aplicadas a cada consulta individual, não ao conjunto de resultados final. - O
ORDER BY
A cláusula é aplicada ao conjunto de resultados combinado, não dentro do conjunto de resultados individual.
Observe que a diferença entre
UNION
e JOIN
por exemplo, INNER JOIN
ou LEFT JOIN
é que o 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);
Code language: SQL (Structured Query Language) (sql)
A instrução a seguir combina os conjuntos de resultados das tabelas t1 e t2 usando o
UNION
operador:SELECT v1
FROM t1
UNION
SELECT v2
FROM t2;
Code language: SQL (Structured Query Language) (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;
Code language: SQL (Structured Query Language) (sql)
A imagem a seguir mostra a saída:
A imagem a seguir ilustra o
UNION ALL
operação dos conjuntos de resultados das tabelas t1 e t2:SQLite UNION
exemplos
Vejamos alguns exemplos de uso do
UNION
operador. 1) SQLite UNION
exemplo
Esta instrução usa 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;
Code language: SQL (Structured Query Language) (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 o 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;
Code language: SQL (Structured Query Language) (sql)
Aqui está a saída:
Neste tutorial, você aprendeu como usar SQLite
UNION
operador para combinar linhas de conjuntos de resultados em um único conjunto de resultados. Você também aprendeu as diferenças entre UNION
e UNION ALL
operadores.