David Viana Postado Dezembro 26, 2011 Denunciar Share Postado Dezembro 26, 2011 Boa tarde galera,Fiz o seguinte select no meu banco Mysql:SELECT pes.nomePessoa FROM pessoa pes INNER JOIN corretor cor ON cor.idclassificacao = 2 ORDER BY pes.nomePessoa;Ele me retorna todas os corretores que tem classificacao 2, só que vem duplicado. Por exemplo, temos dois corretores salvos na tabela:Tabela CorretorCorretor A classificacao 2Corretor B classificacao 2quando uso o select acima ele me traz várias vezes o corretor A e varias vezes o corretor B.O que tem de errado? Link para o comentário Compartilhar em outros sites More sharing options...
0 David Viana Postado Dezembro 26, 2011 Autor Denunciar Share Postado Dezembro 26, 2011 Galera, alterei meu select para ver como ele estava trazendo os valores. Verifiquei que para cada nome ele coloca todos os códigos de corretor que .Por exemplo:Select utilizado:SELECT pes.nomePessoa, cor.codCor FROM pessoa pes INNER JOIN corretor cor ON cor.idclassificacao = 2 ORDER BY pes.nomePessoa;OBS.: tentei apenas com um WHERE, mas teve o mesmo efeito.SELECT pes.nomePessoa, cor.codCor FROM pessoa pes, corretor cor WHERE cor.idclassificacao = 2 ORDER BY pes.nomePessoa;Tabela CorretoridCor -- codCor -- classificacao1 ------- 123 ------- 12 ------- 124 ------- 13 ------- 125 ------- 14 ------- 126 ------- 2Tabela PessoaidCorretor -- nome 1 ------------ Fulano X 2 ------------ Fulano Y3 ------------ Fulano Z4 ------------ Fulano AQuando faço o select ele traz o fulano X,Y,Z com todos os códigos de corretor retornados:Fulano X -- 123Fulano X -- 124Fulano X -- 125Fulano Y -- 123Fulano Y -- 124Fulano Y -- 125Fulano Z -- 123Fulano Z -- 124Fulano Z -- 125 Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Dezembro 27, 2011 Denunciar Share Postado Dezembro 27, 2011 Boa tarde galera,Fiz o seguinte select no meu banco Mysql:SELECT pes.nomePessoa FROM pessoa pes INNER JOIN corretor cor ON cor.idclassificacao = 2 ORDER BY pes.nomePessoa;Ele me retorna todas os corretores que tem classificacao 2, só que vem duplicado. Por exemplo, temos dois corretores salvos na tabela:Tabela CorretorCorretor A classificacao 2Corretor B classificacao 2quando uso o select acima ele me traz várias vezes o corretor A e varias vezes o corretor B.O que tem de errado?Oi Davi!o INNER JOIN é a palavra chave que informa ao SQL que ele vai realizar uma interseção entre dois conjuntos (lembra das aulas de matemática da antiga 5a série?). Para isto ele precisa que dois elementos existam, em correspondência, nos dois conjuntos. No seu caso você está colocando na cláusula ON, a comparação entre um atributo e uma constante quando deveria ser a comparação entre o atributo da tabela pessoa e o atributo da tabela corretor.Esta sua comparação não tem nexo e o sistema está mostrando dados irregulares que correspondem a igualdade passada.Corrija a igualdade da cláusula ON Link para o comentário Compartilhar em outros sites More sharing options...
0 David Viana Postado Dezembro 28, 2011 Autor Denunciar Share Postado Dezembro 28, 2011 Denis Courcy, valeu. Eu num saco quase nada de Banco de Dados, estou começando a aprender agora.A alteração + o incremento de um where resolveu o meu problema.Vlw Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
David Viana
Boa tarde galera,
Fiz o seguinte select no meu banco Mysql:
SELECT pes.nomePessoa FROM pessoa pes INNER JOIN corretor cor ON cor.idclassificacao = 2 ORDER BY pes.nomePessoa;
Ele me retorna todas os corretores que tem classificacao 2, só que vem duplicado. Por exemplo, temos dois corretores salvos na tabela:
Tabela Corretor
Corretor A classificacao 2
Corretor B classificacao 2
quando uso o select acima ele me traz várias vezes o corretor A e varias vezes o corretor B.
O que tem de errado?
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados