Como unir os resultados de duas consultas SQL?

Podemos unir resultados de duas consultas SQL utilizando UNION para remover duplicatas ou UNION ALL para incluir todos os registros.

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.
  • UNION pode ter um desempenho menor, pois exige a remoção de duplicatas.
  • Utilize ORDER BY após o UNION para ordenar os resultados combinados.

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 UNION se 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 BY no final para organizar os dados combinados

Contribuições de Rodrigo Martins

Compartilhe este tutorial: Como unir os resultados de duas consultas SQL?

Compartilhe este tutorial

Continue aprendendo:

Como excluir registros de uma tabela baseando-se em outra tabela?

Podemos excluir registros de uma tabela baseando-se em outra utilizando DELETE com JOIN, NOT EXISTS ou NOT IN no SQL.

Tutorial anterior

Como evitar dados duplicados ao unir tabelas no SQL?

Para evitar duplicações ao unir tabelas no SQL, utilizamos DISTINCT, UNION e técnicas como GROUP BY para consolidar registros.

Próximo tutorial