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

Responder a