Como unir os resultados de duas consultas SQL?
No SQL, podemos unir os resultados de duas consultas distintas utilizando UNION ou UNION ALL. Isso é útil quando precisamos consolidar dados de diferentes tabelas ou criar relatórios combinados.
Usando UNION para remover duplicatas
O UNION combina os resultados de duas consultas removendo duplicatas automaticamente:
SELECT nome, email FROM clientes
UNION
SELECT nome, email FROM fornecedores;
Essa consulta retorna uma lista única de nome e email, eliminando entradas repetidas.
Usando UNION ALL para manter todos os registros
Se quisermos manter todas as ocorrências, inclusive duplicadas, utilizamos UNION ALL:
SELECT nome, email FROM clientes
UNION ALL
SELECT nome, email FROM fornecedores;
Isso retorna todos os registros, sem eliminar valores duplicados.
Diferença entre UNION e UNION ALL
| Comando | Remove duplicatas? | Melhor para |
|---|---|---|
| UNION | Sim | Relatórios unificados sem repetições |
| UNION ALL | Não | Melhor desempenho e quando queremos todas as ocorrências |
Unindo consultas com colunas diferentes
Para unir consultas com colunas diferentes, usamos alias (AS) e valores fixos:
SELECT id, nome, 'Cliente' AS tipo FROM clientes
UNION ALL
SELECT id, nome, 'Fornecedor' AS tipo FROM fornecedores;
Aqui, adicionamos uma coluna tipo para diferenciar os registros.
Cuidados ao unir consultas
- O número de colunas e seus tipos devem ser os mesmos em ambas as consultas.
UNIONpode ter um desempenho menor, pois exige a remoção de duplicatas.- Utilize
ORDER BYapós oUNIONpara ordenar os resultados combinados.
Quando utilizar UNION e UNION ALL no SQL?
Unir resultados de consultas no SQL é essencial para relatórios combinados e análise de dados distribuídos. Em um e-commerce, podemos usar UNION para consolidar clientes e fornecedores em uma única lista. Já no setor financeiro, podemos combinar transações de diferentes bancos de dados para gerar um extrato unificado. A escolha entre UNION e UNION ALL deve considerar a necessidade de remover duplicatas e o impacto na performance da consulta.
Algumas aplicações:
- Consolidar clientes e fornecedores em um único relatório
- Unificar dados de vendas e devoluções
- Gerar listas combinadas de usuários de diferentes sistemas
- Combinar informações de múltiplas tabelas para análise
- Exibir logs de diferentes fontes em uma única visualização
Dicas para quem está começando
- Use
UNIONse precisar remover duplicatas automaticamente - Se a performance for uma prioridade, prefira
UNION ALL - Garanta que as colunas tenham os mesmos tipos de dados
- Se precisar diferenciar os resultados, adicione uma coluna fixa como
tipo - Utilize
ORDER BYno final para organizar os dados combinados
Rodrigo Martins
Especialista em bancos de dados SQL e otimização de consultas para aplicações críticas.
Mais sobre o autor