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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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?
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?
É 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, :)