Olá, galera. Estou probleminha que está chato para resolver. Consulta vinda do INNER JOIN trás resultados duplicados.
Tenho duas tabelas que são independentes.
uma das tabelas recebe os dados de uma planilha... melhor dizendo, os dados(que é uma planilha excel) são importados para a tb_fanf do mysql.
também tenho uma tabela que recebe o conteúdo de arquivos xml -> tb_xml
tanto a tb_xml quanto a tb_fanf possuem o mesmo campo: numeroFicha. Essas tabelas possuem "por sí" próprias esses campos e são alimentadas independentemente.
Como essas tabelas possuem as o mesmo campo: numeroFicha, então o que pensei.. vou realizar uma consulta que traga tal número de ficha do xml e se exibir na tb_fanf, também trará os dados desta tabela.
OBS: cada FICHA tem um EXAME.
Esta ficha - 5000000008 - existe 8 vezes na tb_xml e 8 vezes na tb_fanf
Utilizei o seguinte código:
SELECT DISTINCT x.numeroGuiaPrestador, x.codigoProcedimento, f.valor_exame_fanf FROM tb_xml x INNER JOIN tb_fanf f ON x.numeroGuiaPrestador=f.numeroFicha_fanf WHERE f.numeroFicha_fanf='5000000008'
deveria me retornar da seguinte maneira:
5000000008
5000000008
5000000008
5000000008
5000000008
5000000008
5000000008
5000000008
o que acontece é me retornar 64 vezes o mesmo registro.
ou seja, parece que pega 8 da tb_xml VEZES 8 da tb_faf e resulta 64.
O dados aparecem mais do que duplicados.
Já usei o DISTINCT. Mas ele serve só quando não utilizo o valor_exame. Quando coloco este, os dados se repetem.
Pergunta
carlosantoliv
Olá, galera. Estou probleminha que está chato para resolver. Consulta vinda do INNER JOIN trás resultados duplicados.
Tenho duas tabelas que são independentes.
uma das tabelas recebe os dados de uma planilha... melhor dizendo, os dados(que é uma planilha excel) são importados para a tb_fanf do mysql.
também tenho uma tabela que recebe o conteúdo de arquivos xml -> tb_xml
tanto a tb_xml quanto a tb_fanf possuem o mesmo campo: numeroFicha. Essas tabelas possuem "por sí" próprias esses campos e são alimentadas independentemente.
Como essas tabelas possuem as o mesmo campo: numeroFicha, então o que pensei.. vou realizar uma consulta que traga tal número de ficha do xml e se exibir na tb_fanf, também trará os dados desta tabela.
OBS: cada FICHA tem um EXAME.
Esta ficha - 5000000008 - existe 8 vezes na tb_xml e 8 vezes na tb_fanf
Utilizei o seguinte código:
SELECT DISTINCT x.numeroGuiaPrestador, x.codigoProcedimento, f.valor_exame_fanf FROM tb_xml x
INNER JOIN tb_fanf f ON x.numeroGuiaPrestador=f.numeroFicha_fanf WHERE f.numeroFicha_fanf='5000000008'
deveria me retornar da seguinte maneira:
5000000008
5000000008
5000000008
5000000008
5000000008
5000000008
5000000008
5000000008
o que acontece é me retornar 64 vezes o mesmo registro.
ou seja, parece que pega 8 da tb_xml VEZES 8 da tb_faf e resulta 64.
O dados aparecem mais do que duplicados.
Já usei o DISTINCT. Mas ele serve só quando não utilizo o valor_exame. Quando coloco este, os dados se repetem.
Alguém compreende o que acontece?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.