Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Willian Aquino

Como devo usar o Distinct no Join

Recommended Posts

Bom dia!!!

 

Tenho uma dúvida na hora de montar o meu Distinct numa busca (join) que estou fazendo um site em JSP

o problema é que tráz mtos dados repetidos e pesquisei para não trazer vários dados repetidos devemos usar o Distinct

até ai beleza mas mesmo usando o Distinct tráz todos os dados anteriores repetindo tudo denovo...

Eu estava usando inner join para fazer a consulta mas meu irmão que manja mais que eu falo que isso é bestira

e coisa e tal e por isso estou usando o AND....

Alguém pode me ajudar e me diser qual cláusula deve ser usada Inner ou AND?

 

Mto obrigado!!!

 

SELECT DISTINCT tbmarca.*,tbcarro.*,tbcliente.*,tbmodelo.*,tbversao.* FROM tbmarca,tbcarro,tbcliente, tbmodelo,tbversao WHERE tbmarca.id_marca = 1 AND tbmodelo.id_modelo = 1 AND tbversao.id_versao = 1 AND tbcarro.ano >= 2000 AND tbcarro.ano <= 2003

Estou fazendo um site de carros usando Mysql 5.0 e JSP (Tomcat 6.0)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Willian, pelo que vi está trazendo muitos dados repitidos por não estar coerentes os joins que você fez (parece faltar alguns).

Geralmente quando os joins estão corretos não precisa nem de você usar o distinct. Eu uso ele apenas em casos extremos, mas vale muito mais você fazer seu script corretamente para não precisar usá-lo.

 

Sobre os innes x and, continue usando o and, conforme disse teu irmão. É mais facil trabalhar assim e o script fica mais fácil de se entender.

 

Trabalhe também com blocos, ou se, estruture sua consulta:

 

select campos

from tabelas

where joins e condicoes

order by campo

 

Dessa forma fica mais facil analisar a query.

 

Pelo que vi você tambem não usa alias. Os alias são apelidos para as tabelas, campos, etc. Usando ele você consegue trabalhar melhor com as tabelas:

 

select a.nome, b.profissao

from tbclientes a, tbprofissao b..

where a.idprofissao = b.idprofissao

order by a.nome

 

Entendeu mais ou menos como funciona?

Se aprofundarmos mais escrevereu mil linhas aqui. Sugiro que você pegue algumas apostilas e exemplos aqui no forum mesmo.

 

Abraços e até mais.

 

Guilherme.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Guilherme !!!

 

Pensei que os apelidos não se usava em Mysql somente sql...

Darei uma olhada nas minhas tabelas para ver o que ocorre, pois repetem mtos mesmos as minhas consultas...

também irei pegar umas apostilas aqui no forum sim...

 

Mto Obrigado !!!

 

Falo Até a proxima

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.