Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

DISTINCT no comando UNION

Por que em todas as consulta que estão no exemplo que o professor utiliza para explicar os comandos UNION e UNION ALL ele utilizou no select o comando DISTINCT?

4 respostas

Olá Flaviana, tudo bem? Isso é porque nas tabelas existem dados repetidos, como por exemplo, quando ele faz o UNION entre BAIRRO da tabela clientes e BAIRRO da tabela de vendedores, note que se você executar um consulta geral:

SELECT * FROM [TABELA DE CLIENTES].BAIRRO;

Você vai ver existem bairro que se repetem, então didaticamente é mais simples explicar o que está acontecendo usando o DISTINCT para que os dados não sejam repetidos.

Espero ter esclarecido sua dúvida!

Olá Jonilson, obrigada pelos esclarecimentos.

Você disse que didaticamente fica mais simples explicar usando o DISTINCT, mas o UNION tem como principal função a mesma finalidade do DISTINCT não é? Ou seja se eu aplicar o UNION (somente ele) pra unir as tabelas de venderedores e clientes pelo campo bairro, não teremos no resultado da consulta bairros repetidos. Certo? Veja a cosulta que o professor usou como exemplo:

SELECT DISTINCT [TABELA DE CLIENTES].BAIRRO FROM [TABELA DE CLIENTES] UNION SELECT DISTINCT [TABELA DE VENDEDORES].BAIRRO FROM [TABELA DE VENDEDORES]

O que quero dizer é que se usarmos a consulta abaixo teremos o mesmo resultado sem usar o distinct. SELECT [TABELA DE CLIENTES].BAIRRO FROM [TABELA DE CLIENTES] UNION SELECT [TABELA DE VENDEDORES].BAIRRO FROM [TABELA DE VENDEDORES]

Esta correto a minha afirmação? De que não precisamos usar o DISTINCT junto com UNION para que o resultado não retorno dados repetidos?

solução!

É verdade Flaviana, você está certa, implicitamente o UNION e o UNION ALL realizam o DISTINCT, porém como eu falei, o instrutor colocou o DISTINCT para mostrar esse processo é feito, acho que foi só pra deixar mais claro que isso acontece. Mais sim você está certa.

Muito obrigada Jonilson, :)