none
Inner Join em 3 tabelas RRS feed

  • Pergunta

  • Boa tarde Senhores,

    Estou com uma dificuldade para aplicar inner join left em 3 tabelas, se alguem puder me ajudar, agradeço desde já.

    A situação é a seguinte: Tenho esta query que faz a consulta em 2 tabelas, oque preciso é acrescentar + 1 coluna, no caso a "AccountLevel" da tabela"Memb_info"  que é o mesmo valor da coluna "AccountID" da tabela Character, porem não imagino como acresceter uma 3ª tabela, rs.

    select character.Name

    ,character.AccountID

    ,character.Class
    ,character.cLevel
    ,character.ResetCount
    ,GuildMember.G_name
    ,max(GuildMember.G_Level) as maior_valor_level
    ,rank() over (order by max(GuildMember.G_Level) desc ) as RANK
    from character
    LEFT OUTER JOIN GuildMember ON character.Name = GuildMember.Name
    GROUP BY character.Name

    ,character.AccountID
    ,character.Class
    ,character.cLevel
    ,character.ResetCount
    ,GuildMember.G_name

    Obrigado!

    quarta-feira, 21 de agosto de 2013 12:23

Respostas

  • Bom dia,

    Experimente mais ou menos dessa forma:

    select character.Name
    
    ,character.AccountID
    
    ,character.Class
    ,character.cLevel
    ,character.ResetCount
    ,GuildMember.G_name
    
    ,Memb_info.AccountLevel
    
    ,max(GuildMember.G_Level) as maior_valor_level
    ,rank() over (order by max(GuildMember.G_Level) desc ) as RANK
    from character
    LEFT OUTER JOIN GuildMember 
        ON character.Name = GuildMember.Name
    LEFT OUTER JOIN Memb_info
        on character.AccountID = Memb_info.AccountID
    GROUP BY character.Name
    
    ,character.AccountID
    ,character.Class
    ,character.cLevel
    ,character.ResetCount
    ,GuildMember.G_name
    
    ,Memb_info.AccountLevel
    

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta JKaefer quarta-feira, 21 de agosto de 2013 14:04
    quarta-feira, 21 de agosto de 2013 13:10

Todas as Respostas

  • Bom dia,

    Experimente mais ou menos dessa forma:

    select character.Name
    
    ,character.AccountID
    
    ,character.Class
    ,character.cLevel
    ,character.ResetCount
    ,GuildMember.G_name
    
    ,Memb_info.AccountLevel
    
    ,max(GuildMember.G_Level) as maior_valor_level
    ,rank() over (order by max(GuildMember.G_Level) desc ) as RANK
    from character
    LEFT OUTER JOIN GuildMember 
        ON character.Name = GuildMember.Name
    LEFT OUTER JOIN Memb_info
        on character.AccountID = Memb_info.AccountID
    GROUP BY character.Name
    
    ,character.AccountID
    ,character.Class
    ,character.cLevel
    ,character.ResetCount
    ,GuildMember.G_name
    
    ,Memb_info.AccountLevel
    

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta JKaefer quarta-feira, 21 de agosto de 2013 14:04
    quarta-feira, 21 de agosto de 2013 13:10
  • Gapimex, muito obrigado meu caro, me ajudou muito, ficou exatamente como eu precisava, um abraço e sucesso!
    quarta-feira, 21 de agosto de 2013 14:03