Em 06/09/08, Adenilton B. da Silva<[EMAIL PROTECTED]> escreveu: > Me desculpem, mas acho que eu mesmo acabei trocando as coisas, então vamos > tentar novamente. > > Na tabela foo1 pretendo armazenar informações para as quais haverão > registros descendentes (tabela foo2) e esta última, por sua vez, também terá > seus descendentes armazenados na tabela foo3, completando uma hierarquia > cujo número de subníveis é exatamente dois. Logo, refazendo o resultado > desejado que enviei no primeiro email, teríamos o seguinte aspecto: > > PRODUTO1 COR AMARELA > AZUL > CINZA > MARROM > PRETA > MODELO > JEANS > PRODUTO 2PRODUTO 3PRODUTO 4 > COR > BRANCA > VERDE > TAMANHO > MEDIO Notem que o usuário pode querer atribuir outras > características para cada produto e estas, consequentemente, podem agrupar > diversos valores que lhe façam referência.Sei que falei que outrora que > poderíamos omitir os códigos do resultados, não que seja exatamente isto que > eu quero, pelo contrário, mas o fiz em função de tentar simplificar a > resolução desta solicitação (se é que é possível).Quanto ao connect by() > [1], é uma extensão para Oracle que funciona juntamente com start with na > implementação de querys recursivas. Também encontrei alguns comentários[2] > sobre uma possível implementação de algo parecido no PostgreSQL, não sei se > procede. Por último ví em uma mensagem antiga [3] do forum de PostgreSQL que > haveria um path para adicionar essa função ao elefante, no entanto, o link > indicado é de um site russo e lá nada encontrei.[1] > http://www.adp-gmbh.ch/ora/sql/connect_by.html[2] > http://osdir.com/ml/db.postgresql.brasil/2002-12/msg00378.html[3] > http://archives.postgresql.org/pgsql-bugs/2004-05/msg00047.php > > Mais uma vez grato pelo empenho em esclareçer esta demanda,Atenciosamente, >
O PostgreSQL implementa a função connectby através do módulo contrib/tablefunc, veja: http://www.postgresql.org/docs/8.3/interactive/tablefunc.html Agora quanto ao seu problema não considero que exista recursividade já que nenhuma das tabelas envolvidas se relaciona com ela mesma. Seu problema é solucionado através de uma simples junção das três tabelas envolvidas. Veja exemplo de recursividade no link acima. Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
