none
instrução select com inner join RRS feed

  • Pergunta

  • Pessoal boa tarde,

    esse código ele faz a ligação entre tabelas relacionadas e tras as informação conforme id:

    SelectCommand="SELECT tb_paisImportaExporta.id,tb_paisImportaExporta.id_contato,tb_paisImportaExporta.id_pais,tb_paises.pais,tb_paises.importar,tb_paises.exportar,tb_paises.tem_inte_importar,tb_paises.tem_inte_exportar FROM tb_paisImportaExporta INNER JOIN tb_contato ON tb_paisImportaExporta.id_contato = tb_contato.cdContato INNER JOIN tb_paises ON tb_paisImportaExporta.id_pais = tb_paises.id  WHERE cdContato = 478

    porem o resultado ele tras somente o pais que o usuario tiver relacionado,como que eu faria para que ele traga todos os paises independente do usuario nesse código acima??

    Pois eu preciso trazer todos os paises independente do relacionamento,pois se for por relacionamento eu terei que por o id do contato varias vezes ate o termino do id do pais.

    Quem puder me ajudar,

    Muito Obrigado,
    quarta-feira, 26 de novembro de 2008 16:53

Respostas

Todas as Respostas

  • Leandro,

     

    Já tentou utilizar o Left Join ao invês do Inner Join?

    quarta-feira, 26 de novembro de 2008 17:07
  • Boa Tarde,

     

    Seu SQL Server é 2005 ?

     

    [ ]s,

     

    Gustavo

     

    quarta-feira, 26 de novembro de 2008 17:18
  • Obrigado pelo retorno,é sql server 2000
    quarta-feira, 26 de novembro de 2008 17:59
  • Boa Tarde,

     

    A resposta é essa:

     

    Code Snippet

    SELECT

    EX.id, EX.id_contato, EX.id_pais,

    PA.pais, PA.importar, PA.exportar, PA.tem_inte_importar,

    PA.tem_inte_exportar

    FROM

    tb_paises AS PA

    LEFT JOIN (tb_paisImportaExporta As EX

    INNER JOIN tb_contato AS CT ON EX.id_contato = CT.cdContato and cdContato = 478) ON EX.id_pais = PA.id

     

    Agora será que ela faz sentido ? Faz sentido listar todos os países (mesmo aqueles em que o contato 478 não esteja envolvido) ? Se sim a resposta é essa mesma. Senão, considere sua primeira consulta.

     

    [ ]s,

     

    Gustavo

    quarta-feira, 26 de novembro de 2008 18:03
  • Olá Leandro, se eu entendí bem, vc quer listar todos os registros em paisImportaExporta mesmo que o o valor do campo id_contato não coexista com a tabela de contatos(cdContato).

     

    A solução, é bem simples, o nosso colega Junior, já respondeu. Use o "LEFT".

     

    outro exemplo:

    Code Snippet

    SELECT i.id,i.id_contato,i.id_pais,
    p.pais,p.importar,p.exportar,p.tem_inte_importar,p.tem_inte_exportar
    FROM tb_paisImportaExporta i
    left JOIN tb_contato c ON i.id_contato = c.cdContato
    left JOIN tb_paises p ON i.id_pais = p.id

     

     

    quarta-feira, 26 de novembro de 2008 18:49