none
Inner Join vem com valor Duplicados RRS feed

  • Pergunta

  • Amigos, ao executar um simples select entre duas tabelas, me vem o valor duplicado

    sei que o resultado, é de 80 registro.

    Só que quando faço esse select:

    SELECT  P.COD_PROD, T.COD_BARRAS,P.QUANT
    FROM LOTES_E_PEDIDOS As P  INNER JOIN T_PROD As T
    On P.COD_PROD = T.COD_PROD 
    WHERE P.ID_LOTE = '78548'

    O Resultado vem Duplicado..

    Alguém já viu isso? Não vejo Logica, porque duplica!

    Obs.: O Campo ID_LOTE não é chave primaria em nenhuma dessas tabelas.


    quarta-feira, 22 de agosto de 2012 20:57

Respostas

  • Com certeza existe produto duplicado (código) em uma dessas duas tabelas. Uma outra opção é dar um Select com * e verificar:

    SELECT  P.*, T.*
    FROM LOTES_E_PEDIDOS As P  INNER JOIN T_PROD As T
    On P.COD_PROD = T.COD_PROD 
    WHERE P.ID_LOTE = '78548'


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta Moises Gomes quinta-feira, 23 de agosto de 2012 10:22
    quinta-feira, 23 de agosto de 2012 03:09
    Moderador

Todas as Respostas

  • Boa Noite,

    De fato é muita coincidência, mas se existir exatamente 2 ocorrências em T_Prod para cada registro em LOTES_E_PEDIDO, então dará o dobro mesmo. Você poderia fazer um teste de verificação.

    SELECT COD_PROD, COUNT(*) FROM T_PROD WHERE ID_LOTE = '78548' GROUP BY COD_PROD

    O que é retornado ?

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos:http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível

    quarta-feira, 22 de agosto de 2012 23:55
  • Com certeza existe produto duplicado (código) em uma dessas duas tabelas. Uma outra opção é dar um Select com * e verificar:

    SELECT  P.*, T.*
    FROM LOTES_E_PEDIDOS As P  INNER JOIN T_PROD As T
    On P.COD_PROD = T.COD_PROD 
    WHERE P.ID_LOTE = '78548'


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta Moises Gomes quinta-feira, 23 de agosto de 2012 10:22
    quinta-feira, 23 de agosto de 2012 03:09
    Moderador
  • MATOU A CHARADA ROBERTO, A TABELA T_PROD , TEM VALOR REPETIDO (ASSIM NÃO DÁ NÉ).

    GUSTAVO , VALE A FORÇA TAMBÉM

    quinta-feira, 23 de agosto de 2012 10:24
  • Coloque o comando DISTINCT e pronto.

    SELECT DISTINCT P.COD_PROD, T.COD_BARRAS,P.QUANT
    FROM LOTES_E_PEDIDOS As P  INNER JOIN T_PROD As T
    On P.COD_PROD = T.COD_PROD 
    WHERE P.ID_LOTE = '78548'

    segunda-feira, 3 de setembro de 2012 04:24