Em 24/05/15, Matheus Saraiva<[email protected]> escreveu:
> Existe uma tabela chamada GAME:
>
> GAME
> ---------------
> codbar_game varchar(14) PK,
> nome_game varchar(50),
> genero_game varchar(30),
> status_game boolean
>
> Cada game pode ter vários idiomas de áudio:
>
> AUDIO
> ----------------
> id_audio SERIAL PK,
> nome_idioma varchar(30)
>
>
> AUDIOGAME
> ----------------------
> codbar_game varchar(14) PK FK,
> id_audio integer PK FK
>
>
> Cada game também pode ter vários idiomas de legenda:
>
> LEGENDA
> -------------------
> id_legenda SERIAL PK,
> nome_legenda varchar(30)
>
>
> LEGENGAME
> -----------------------
> codbar_game varchar(14) PK FK,
> id_legenda integer PK FK
>
>
> Estou pensando em um select onde eu possa trazer todos os dados de um
> determinado game junto com as legendas e áudios dele, exemplo:
>
>
> codbar_game | nome_game | genero_game | status_game | legendas_game |
> audios_game
> 00000001         God of War     Ação                  TRUE
> <legendas>        <audios>
>
>
> A ideia é não repetir o jogo para mostrar os áudios e as legendas que
> ele tem, ou seja, eu não desejo isso:
>
> codbar_game | nome_game | genero_game | status_game | legendas_game |
> audios_game
> 00000001         God of War     Ação                  TRUE         pt_BR
>                  pt_BR
> 00000001         God of War     Ação                  TRUE         en_US
>                 en_US
>
> Ao invés disso o select poderia retornar as legendas e os audios do game
> em forma de listas de varchar, assim o programador pode extrair o
> conteúdo dessa lista e exibir graficamente como achar melhor. Aceito
> outras sugestões.
> _______________________________________________
>

Utilize a cláusula GROUP BY codbar_game e a função de agregação
array_agg ou string_agg.

http://www.postgresql.org/docs/current/interactive/functions-aggregate.html

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a