O comando UNION é utilizado para combinar os resultados de duas ou mais consultas SQL em um único resultado.
Ele permite unir informações vindas de tabelas diferentes ou consultas diferentes, facilitando análises e relatórios.
SELECT coluna1, coluna2
FROM tabela1
UNION
SELECT coluna1, coluna2
FROM tabela2;
| Regra | Descrição |
|---|---|
| Quantidade de colunas | As consultas devem possuir a mesma quantidade |
| Tipos de dados | As colunas devem possuir tipos compatíveis |
| Ordem das colunas | Deve ser igual nas consultas |
| Duplicidades | São removidas automaticamente |
CLIENTES_SP
+---------+
| Nome |
+---------+
| Ana |
| Carlos |
+---------+
CLIENTES_RJ
+---------+
| Nome |
+---------+
| Pedro |
| Maria |
+---------+
SELECT nome
FROM clientes_sp
UNION
SELECT nome
FROM clientes_rj;
Resultado:
Ana
Carlos
Pedro
Maria
SELECT nome
FROM clientes_sp
UNION
SELECT nome
FROM clientes_rj
ORDER BY nome;
O ORDER BY deve ser aplicado apenas no final da consulta.
SELECT nome, 'Cliente' AS tipo
FROM clientes
UNION
SELECT nome, 'Fornecedor'
FROM fornecedores;
Permite unir informações de entidades diferentes.
| UNION | JOIN |
|---|---|
| Une linhas | Une colunas |
| Combina resultados | Relaciona tabelas |
| Consultas independentes | Dados relacionados |
| Sistema | Utilização |
|---|---|
| CRM | Unir clientes de diferentes regiões |
| Financeiro | Unificar movimentações |
| RH | Juntar funcionários de unidades diferentes |
| E-commerce | Consolidar vendas |
| Erro | Problema |
|---|---|
| Número diferente de colunas | Erro na execução |
| Tipos incompatíveis | Falha na conversão |
| Usar UNION para relacionar tabelas | JOIN seria mais adequado |
| Ordenar consultas separadamente | Resultado incorreto |