Em 15/07/08, Xisberto<[EMAIL PROTECTED]> escreveu:
> Olá a todos.
>
> Tenho pouca experiência com SQL em geral, estou querendo aprender. Acabei de
> entrar na lista porque não consigo realizar uma consulta. Não sei nem como
> procuro no google pela solução do problema (não sei que palavras-chave
> usar).
>
> Explicando melhor:
>
> Estou fazendo um banco para catalogar coleções de cartas de um jogo. Neste
> jogo existem 5 cores e cada carta pode ter entre 0 e 5 cores. Para
> representar isso, após alguma pesquisa, fiz 3 tabelas:
>
> _____
> mtg_collection=# \d cards
>                                     Table "public.cards"
>    Column   |          Type          |                      Modifiers
> ------------+------------------------+------------------------------------------------------
>  code       | integer                | not null default
> nextval('cards_code_seq'::regclass)
>  name       | character varying(100) | not null
>  portuguese | character varying(100) |
> Indexes:
>     "cards_pkey" PRIMARY KEY, btree (code)
>     "cards_name_key" UNIQUE, btree (name)
>     "cards_portuguese_key" UNIQUE, btree (portuguese)
>
> _____
> mtg_collection=# \d colors
>                                    Table "public.colors"
>    Column   |         Type          |                       Modifiers
> ------------+-----------------------+-------------------------------------------------------
>  code       | integer               | not null default
> nextval('colors_code_seq'::regclass)
>  name       | character varying(15) | not null
>  portuguese | character varying(15) | not null
> Indexes:
>     "colors_pkey" PRIMARY KEY, btree (code)
>     "colors_name_key" UNIQUE, btree (name)
>     "colors_portuguese_key" UNIQUE, btree (portuguese)
>
> _____
> mtg_collection=# \d colors_for_card
>                           Table "public.colors_for_card"
>  Column |  Type   |                           Modifiers
> --------+---------+---------------------------------------------------------------
>  code   | integer | not null default
> nextval('color_for_card_code_seq'::regclass)
>  color  | integer |
>  card   | integer |
> Indexes:
>     "color_for_card_pkey" PRIMARY KEY, btree (code)
> Foreign-key constraints:
>     "color_for_card_card_fkey" FOREIGN KEY (card) REFERENCES cards(code)
>     "color_for_card_color_fkey" FOREIGN KEY (color) REFERENCES colors(code)
>
> Esta terceira tabela serve para relacionar as duas principais. Eu gostaria
> de saber se existe como em uma única consulta sql retornar cara carta em uma
> linha, listando todas as cores dela.
>
> Não precisa escrever o select aqui, gostaria de sugestões de sintaxe a usar
> e de onde pesquisar sobre sintaxe sql.
>


Dê uma olhada no módulo contrib/tablefunc.
Creio que a função crosstab é exatamente o que procura.
http://www.postgresql.org/docs/8.3/interactive/tablefunc.html

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

Responder a