Patrikr 0 Denunciar post Postado Julho 9, 2015 Alguém poderia me ajudar... É o seguinte. No meu BD tenho dua tabelas: times e jogadores. na tabela times tenho 5 times: timeA, timeB, timeC, timeD e timeE. até aí beleza. na tabela jogadores tenho vários jogadores e cada jogador pertence a um time, correto! eu quero fazer uma consulta onde una as duas tabelas e aparece uma lista +/- assim: timeA | timeB | timeC | timeD | timeE jogador1 | jogador6 | jogador9 | jogador20 | jogador25 jogador2 | jogador11 | jogador16 | jogador18 | jogador17 | como é feito essa consulta? Vlww. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Julho 9, 2015 tente algo assim (3 times) select seq, max(case when time = 'a' then jogador else null end) timea, max(case when time = 'b' then jogador else null end) timeb, max(case when time = 'c' then jogador else null end) timec from ( select time , @rownum:=@rownum+1 seq ,nome_jogador from jogadores where time = 'a' union all select time , @rownum:=@rownum+1 seq ,nome_jogador from jogadores where time = 'b' select time , @rownum:=@rownum+1 seq ,nome_jogador from jogadores where time = 'c' ) group by seq @rownum:=@rownum+1 faz uma sequencia fajuta o case separa por time mas se houver um 4º time a sql precisa ser alterada todavia Compartilhar este post Link para o post Compartilhar em outros sites
Patrikr 0 Denunciar post Postado Julho 9, 2015 Motta. Tem como deixar essa consulta automática caso eu fosse adicionando times e jogadores? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Julho 10, 2015 Nem sei se este sql acima funciona pois não testei .... Respondendo : Em sql puro não me ocorre. Existem soluções como geradores de relatório que fazer referência cruzada , montagem de matrizes etc. Compartilhar este post Link para o post Compartilhar em outros sites