39. UNION
Escrito por Uianes Luiz Rockenbach Biondo.
Última atualização em 12 mai. 2024
Ú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 |