Osvaldo Kussama escreveu: > 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 >
Complementando: Aproveitando o mote da discussão sobre a preferência que se deve dar ao uso de chaves naturais nas tabelas pergunto: Por que utilizar estas chaves artificiais nestas tabelas? Seu uso fornece algum ganho ou será justamente o contrário, isto é, apenas irão complicar suas queries? Osvaldo _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral