Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
OBS:Antes de tudo, já existem tópico com mesmo teor, poréns uns respondidos especificamente e outros mal explicados.
Senhores, tenho duas tabelas, com campos que possuem os mesmos dados:
- tb_xml;
- numeroGuiaPrestador
- tb_far;
-numeroFicha
Esses campos funcionam como um tipo de ID.
Ao tentar realizar o INNER JOIN entre essas duas tabelas, o resultado é triplicado.
Pra eu obter o resultado aproximado do normal, utilizo o DISTINCT:
SELECT DISTINCT x.numeroGuiaPrestador, x.codigoProcedimento, x.descricaoProcedimento FROM tb_xml x
INNER JOIN tb_far f ON x.numeroGuiaPrestador = f.numeroFicha_far WHERE x.numeroGuiaPrestador='5000000008'
Nessa consulta, o resultado aparece normal. Mas quando acrescento o campo valor_far da tabela tb_far, os dados ficam triplicados.
Ex:
SELECT x.numeroGuiaPrestador, x.codigoProcedimento, x.descricaoProcedimento, **f.valor_far **FROM tb_xml x
INNER JOIN tb_far f ON x.numeroGuiaPrestador = f.numeroFicha_far WHERE x.numeroGuiaPrestador='5000000008'
Já tentei utilizar o DISTINCT e o GROUP BY, mas não obtive muito sucesso. Será que tenho que utilizar um tipo de função?
Porque veja bem, no código supracitado, busco todos os registros que contenham o numero dessa ficha "5000000008", que me retornar 8 registros. Nas duas tabelas existem 8 registros dessa mesma ficha, ou seja tb_xml tem 8 registros e tb_far tem 8 registros.
E quando realizo a consulta, é me retornado 64 registros.
É como se realizasse uma operação matemática da multiplicação: 8 x 8 = 64.
O que pode estar acontecendo?
Carregando comentários...