none
Dúvida para criar um select RRS feed

  • Pergunta

  • Bom dia pessoal!

     

    Estou com o seguinte problema:

     

    Tenho uma tabela de vendas que contém o código do vendedor e o código do comprador. Também tenho as tabelas "Vendedores" e "Compradores". Ambas possuem o campo UF_Id. Na tabela de UFs tenho todos os estados e os respectivos códigos. O problema é que eu preciso fazer um select na tabela de vendas, trazendo os nomes dos vendedores e compradores (até ai beleza pra fazer o relacionamento) mas preciso também trazer os estados tanto do vendendor quanto do comprador, ou seja, eu tenho que selecionar a coluna "Sigla" da minha tabela de UFs tanto para o Comprador quanto para o Vendendor. Como posso fazer isso?

     

    Desde já agradeço a ajuda!

    Abraços,

     

    Rafael

    quarta-feira, 4 de julho de 2007 14:07

Respostas

  • Rafael,coloca a tabela UF duas vezes no inner join:

    select a.*, b.*, c.*, d.uf, e.uf
    from
    vendedor_tb a,
    comprador_tb b,
    venda_tb c,
    uf_tb d,
    ud_tb e
    where a.vendedor_id = c.vendedor_id and --vendedor
    b.comprador_id = c.comprador_id and --comprador
    a.uf_if = d.uf_if and -- uf do vendedor
    b.uf_id = e.ud_id --uf do comprador

    quarta-feira, 4 de julho de 2007 14:20
  •  

    Olá Rafael,

     

    Veja o exemplo, onde você vai fazer dois joins com a tabela UF:

     

    Code Snippet

    SELECT C.COMPRADOR, UFC.SIGLA, V.VENDEDOR, UFV.SIGLAUF
    FROM VENDAS VS
    INNER JOIN COMPRADORES C ON V.IDCOMPRADOR = C.IDCOMPRADOR
    INNER JOIN VENDERORES V ON VS.IDVENDEDOR = V.IDVENDEDOR
    INNER JOIN UF UFC ON C.IDUF = UFC.IDUF
    INNER JOIN UF UFV ON V.IDUF = UFV.IDUF

     

     

     

     Abraço

     

    quarta-feira, 4 de julho de 2007 14:22

Todas as Respostas

  • Rafael,coloca a tabela UF duas vezes no inner join:

    select a.*, b.*, c.*, d.uf, e.uf
    from
    vendedor_tb a,
    comprador_tb b,
    venda_tb c,
    uf_tb d,
    ud_tb e
    where a.vendedor_id = c.vendedor_id and --vendedor
    b.comprador_id = c.comprador_id and --comprador
    a.uf_if = d.uf_if and -- uf do vendedor
    b.uf_id = e.ud_id --uf do comprador

    quarta-feira, 4 de julho de 2007 14:20
  •  

    Olá Rafael,

     

    Veja o exemplo, onde você vai fazer dois joins com a tabela UF:

     

    Code Snippet

    SELECT C.COMPRADOR, UFC.SIGLA, V.VENDEDOR, UFV.SIGLAUF
    FROM VENDAS VS
    INNER JOIN COMPRADORES C ON V.IDCOMPRADOR = C.IDCOMPRADOR
    INNER JOIN VENDERORES V ON VS.IDVENDEDOR = V.IDVENDEDOR
    INNER JOIN UF UFC ON C.IDUF = UFC.IDUF
    INNER JOIN UF UFV ON V.IDUF = UFV.IDUF

     

     

     

     Abraço

     

    quarta-feira, 4 de julho de 2007 14:22
  • Muito obrigado Gesiel e Alexandre!

     

    Achei que não pudesse colocar 2 vezes uma mesma tabela no from. Funcionou perfeitamente!

     

    Abraços,

     

    Rafael

    quarta-feira, 4 de julho de 2007 14:58
  • Rafael,

     

    Você pode utilizar sim, inclusive mais de duas vezes!!!

    quarta-feira, 4 de julho de 2007 17:24