39. UNION

Escrito por Uianes Luiz Rockenbach Biondo.
Última atualização em 12 mai. 2024

A instrução UNION é usada para unir dados de duas ou mais tabelas. O SGBD criará uma tabela de resultados com os valores das tabelas combinadas. É importante que toda vez que um UNION for utilizado, o mesmo número de colunas seja solicitado em ambas as tabelas.

Sintaxe:

SELECT coluna1
FROM nomeTabela1
UNION
SELECT coluna1
FROM nomeTabela2;

Exemplo:

Tabela Cidade

cidade_id cidade_nome
1 Santa Maria
2 Porto Alegre
3 Crissiumal
4 Braga
5 Chiapetta
6 Nova Ramada
7 São Valério do Sul
8 Nova Candelária
9 Boa Vista do Buricá

Tabela Cliente

cliente_id cliente_nome cliente_cidade cidade_CEP cliente_país
1 Uianes Santo Augusto 98590-000 Brasil
2 Ana Três Passos 98600-000 Brasil
3 José Tenente Portela 98500-000 Brasil
4 Bruno Porto Alegre 90020-180 Brasil
5 Saulo Santa Maria 97090-000 Brasil

Para criar uma lista de todas as cidades presentes nas duas tabelas:

SELECT cliente_cidade
FROM cliente
UNION
SELECT cliente_nome
FROM cidade;

Resultado:

cliente_cidade
Santo Augusto
Três Passos
Tenente Portela
Porto Alegre
Santa Maria
Crissiumal
Braga
Chiapetta
Nova Ramada
São Valério do Sul
Nova Candelária
Boa Vista do Buricá

Perceba que nenhuma cidade é repetida, pois o UNION ignora os valores repetidos, escrevendo-os somente uma vez. Para que os valores iguais sejam repetidos é necessário utilizar o UNION ALL.

UNION ALL:

SELECT cliente_cidade
FROM cliente
UNION ALL
SELECT cliente_nome
FROM cidade;

Resultado:

cliente_cidade
Santa Maria
Porto Alegre
Crissiumal
Braga
Chiapetta
Nova Ramada
São Valério do Sul
Nova Candelária
Boa Vista do Buricá
Santo Augusto
Três Passos
Tenente Portela
Porto Alegre
Santa Maria