Olá Thiago...

Você terá que usar recursividade... não é tão fácil... mas também não é
impossível.
Fiz isso com firebird, veja se te ajuda a clariar...

http://xenon.locador.com.br/pipermail/lista_firebase.com.br/2007-August/0452
47.html

Espero ter ajudado.
Um abraço.

-----Mensagem original-----
De: [email protected]
[mailto:[email protected]] Em nome de Thiago
Enviada em: terça-feira, 6 de julho de 2010 10:47
Para: [email protected]
Assunto: [pgbr-geral] Ajuda com select

Galera, bom dia.

Seguinte, tenho uma tabela de itens de menu e gostaria de fazer um 
select que retornasse o resultado em forma de árvore, mais ou menos como 
no seguinte exemplo:

Tabela
ID  IDPai  Menu
1   0      Opcoes
2   0      Gerencial
3   1      Desconectar
4   1      Alterar senha
5   2      Criar usuarios
6   2      Liberar permissoes
7   6      Procurar
8   6      Qualquer coisa

Com essa tabela gostaria de um select que me trouxesse o resultado 
ordenado primeiramente pelas raizes (registro com IDPai = 0) e depois 
pelos filhos, mas o problema é apenas uma ramificação, cada filho pode 
conter outros filhos e assim por diante.

Por isso preciso que um select ou uma procedure me retorne o seguinte 
resultado:

Resultado

ID  IDPai  Menu
1   0      Opcoes
3     1      Desconectar
4     1      Alterar senha
2   0      Gerencial
5     2      Criar usuarios
7       5      Procurar
8       5      Qualquer coisa
6     2      Liberar permissoes

Algo parecido com isso

Alguém já passou por algo parecido e sabe como resolver, estou quebrando 
a cabeça aqui e está um pouco complicado.

Obrigado.

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

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

Responder a