Usuário com melhor resposta
JOIN DUPLICA REGISTROS NA CONSULTA

Pergunta
-
Amigos,
Na consulta abaixo, a query me retorna os registros duplicados... E Mesmo usando o Distinct ele continua duplicados os registros. Sei que é algo relacionado ao JOIN, mas Alguém poderia me dizer como evitar isso?
SELECT DISTINCT --dados do consultor tbconsultor.ID_con, tbconsultor.nome_con, tbconsultor.especialidade_con, tbconsultor.email_con, tbconsultor.observacoes_con, tbconsultor.status_con, tbconsultor.datacadastro_con, tbconsultor.Telefone1, tbconsultor.Telefone2, tbconsultor.Telefone3, --Pega o endereço do consultor tbendereco.ID_end, tbendereco.endereco_end, tbendereco.numero_end, tbendereco.bairro_end, tbendereco.cidade_end, tbendereco.uf_end, tbendereco.cep_end, tbendereco.complemento_end FROM tbconsultor INNER JOIN tbendereco ON (tbendereco.IDpessoa_end = tbconsultor.ID_con) WHERE nome_con LIKE '%' + @nome_con + '%' AND tbconsultor.excluido_con = 0 AND tbconsultor.status_con = @status_con ORDER BY nome_con DESC;
Respostas
-
Rodrigo,
Analise os dados de cada tabela do seu JOIN. Provavelmente deve existir mais de um endereço por consultor (ex.: um endereço comercial e outro residencial).
Pelo seu print-screen eu faria uma análise comparando os dados da coluna "ID_CON = 1" na tabela "tbconsultor" com os dados da coluna "IDpessoa_end" na tabela "tbendereco".
Isolando os dados em consultas para cada tabela pode ajudar a identificar se os dados realmente estão duplicados ou se está faltando uma coluna no seu JOIN.
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval Ramos
Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Sugerido como Resposta Ricardo Barbosa Cortes terça-feira, 21 de outubro de 2014 17:28
- Marcado como Resposta Ricardo Barbosa Cortes quarta-feira, 22 de outubro de 2014 17:26
-
Rodrigo,
Pelo resultset é possível perceber que o Consultor de nome_con "Rodrigo" possui 3 endereços diferentes, logo na junção serão geradas 3 linhas diferentes. Oque você precisa? Lista apenas o primeiro endereço? Pois o seu relacionamento é 1 consultor para N endereços.
- Sugerido como Resposta Ricardo Barbosa Cortes terça-feira, 21 de outubro de 2014 17:28
- Marcado como Resposta Ricardo Barbosa Cortes quarta-feira, 22 de outubro de 2014 17:26
Todas as Respostas
-
Bom dia,
Adicione um group by
GROUP BY tbconsultor.ID_con, tbconsultor.nome_con, tbconsultor.especialidade_con, tbconsultor.email_con, tbconsultor.observacoes_con, tbconsultor.status_con, tbconsultor.datacadastro_con, tbconsultor.Telefone1, tbconsultor.Telefone2, tbconsultor.Telefone3, tbendereco.ID_end, tbendereco.endereco_end, tbendereco.numero_end, tbendereco.bairro_end, tbendereco.cidade_end, tbendereco.uf_end, tbendereco.cep_end, tbendereco.complemento_end
Marque como resposta, se foi útil!- Editado Deric Ferreira terça-feira, 21 de outubro de 2014 11:20
- Sugerido como Resposta Deric Ferreira terça-feira, 21 de outubro de 2014 11:20
- Não Sugerido como Resposta Ricardo Barbosa Cortes terça-feira, 21 de outubro de 2014 17:28
-
-
Isso indica que pelo menos uma das colunas das linhas possuem conteúdos diferentes. Por favor, poste o resultset ou pelo menos a parte que acredita estar duplicando.
- Sugerido como Resposta Deric Ferreira terça-feira, 21 de outubro de 2014 11:37
-
-
Rodrigo,
Analise os dados de cada tabela do seu JOIN. Provavelmente deve existir mais de um endereço por consultor (ex.: um endereço comercial e outro residencial).
Pelo seu print-screen eu faria uma análise comparando os dados da coluna "ID_CON = 1" na tabela "tbconsultor" com os dados da coluna "IDpessoa_end" na tabela "tbendereco".
Isolando os dados em consultas para cada tabela pode ajudar a identificar se os dados realmente estão duplicados ou se está faltando uma coluna no seu JOIN.
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval Ramos
Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Sugerido como Resposta Ricardo Barbosa Cortes terça-feira, 21 de outubro de 2014 17:28
- Marcado como Resposta Ricardo Barbosa Cortes quarta-feira, 22 de outubro de 2014 17:26
-
Rodrigo,
Pelo resultset é possível perceber que o Consultor de nome_con "Rodrigo" possui 3 endereços diferentes, logo na junção serão geradas 3 linhas diferentes. Oque você precisa? Lista apenas o primeiro endereço? Pois o seu relacionamento é 1 consultor para N endereços.
- Sugerido como Resposta Ricardo Barbosa Cortes terça-feira, 21 de outubro de 2014 17:28
- Marcado como Resposta Ricardo Barbosa Cortes quarta-feira, 22 de outubro de 2014 17:26