top of page

Diferença entre union e union all


A diferença entre UNION e UNION ALL reside na forma como lidam com duplicatas ao combinar os resultados de duas consultas.


  • UNION: A cláusula UNION combina os resultados de duas consultas, mas remove quaisquer linhas duplicadas do conjunto de resultados combinado. Isso significa que se houver linhas idênticas em ambas as consultas, apenas uma delas será incluída no resultado final.

  • UNION ALL: Por outro lado, a cláusula UNION ALL também combina os resultados de duas consultas, mas não remove linhas duplicadas. Isso significa que todas as linhas de ambas as consultas serão incluídas no resultado final, mesmo que existam duplicatas.



Em resumo, a diferença principal entre UNION e UNION ALL é que o UNION remove linhas duplicadas, enquanto o UNION ALL mantém todas as linhas, incluindo duplicatas, no resultado combinado.


Exemplo pratico.

Nas tabelas abaixo o nome João conta na tabela clientes e na tabela de Fornecedores



Ao utilizar o UNION na consulta abaixo, será retornado apenas 1 João, sendo que existem dois.


SELECT nome

FROM tblCLientes


UNION


SELECT nome

FROM tblFornecedores

ORDER BY nome;



Se utilizo o UNION ALL, o retorno dos nomes será assertivo, visto que realmente o nome João deverá aparecer duas vezes.


SELECT nome

FROM tblCLientes


UNION ALL


SELECT nome

FROM tblFornecedores

ORDER BY nome;

bottom of page