1
resposta

Usando SELECT ou SLECT DISTINCT com UNION

Nos exemplos do vídeo 7 da aula 04 (UNION e UNION ALL) temos os comandos SELECT com a cláusula DISTINCT. No entanto, nos testes que fiz, retirei a cláusula do SELECT - porque o UNION já faz um DISTINCT entre as tabelas - e o resultado foi o mesmo.

A pergunta é: qual a necessidade da cláusula DISTINCT no SELECT das consultas para usar UNION/UNION ALL?

1 resposta

Bem, as clausulas UNION/UNION ALL fazem coisas distintas, respectivamente uma utiliza um Distinct por baixo dos panos enquanto a outra não, por isso existe a necessidade do Distinct para o Union All.

Segundo alguns relatos na 'InterWebs', o Union All com Distinct consome mais processamento.

Para mais informações consulte esse link do StackOverFlow: https://stackoverflow.com/questions/35627923/union-versus-select-distinct-and-union-all-performance/35628095

Em relação ao teu questionamento do distinct para o union, não é necessário.