Oi Luiz! Nativamente, você não tem como fazer uma consulta hierárquica. Isso porque para isso são necessários SQL Recursivos, e isso apesar de definido do padrão SQL-99 ainda não foi implementado pelo PostgreSQL (até onde eu saiba, o único que implementou isso até agora foi o DB2). O Oracle implementa isso fugindo um pouco do padrão.
Embora não seja possível nativamente, dá pra escrever uma função em pl/pgsql que faça o trabalho. Depois de quebrar a cabeça com queries recursivas esse mês, saiu na SQL Magazine um artigo sobre consultas recursivas no PostgreSQL. É um artigo do Rodrigo Hjort, que participa da lista também. Dá uma olhada nesse artigo, será bem útil no seu caso! []'s - Walter > Message: 6 > Date: Thu, 28 Sep 2006 17:46:32 +0000 (GMT) > From: Luiz André Helfer <[EMAIL PROTECTED]> > Subject: [PostgreSQL-Brasil] PostgreSQL - Select para uma hierarquia > To: [email protected] > Message-ID: <[EMAIL PROTECTED]> > Content-Type: text/plain; charset="iso-8859-1" > > Olá pessoal! > > Gostaria de saber se no PostgreSQL existe um select que mostre a estrutura > hierarquica de uma tabela. > > Exemplo: > > tabela A > > cd_a > tp_a > > Tabela B > > cd_b > tp_b > A_cd_a > A_cd_a_sub > > A tabela "A" tem filhos na "B" (A_Cd_a) e a tabela "B" pode não ser > terminal e gerar uma row na tabela "A" (A_Cd_a_sub) e assim sucessivamente > até o último nivel. Como retornar esta hierarquia em um select? > > Outro exemplo é um Plano de Conta Contábil que possui um > auto-relacionamento que possui diversos níveis (ex: 1 até 9) e o último grau > seria o terminal. Como retornar a hierarquia de um conta ora tendo o PAI ora > tendo o FILHO..? > > Agradeço se alguém puder me ajudar! > > em Oracle tem algo semelhante..... exemplo em Oracle > > Select Mod.Nome_Modulo > , Sys_Connect_By_Path (Mod.Nome_Modulo, '/') > , Mod.Mod_Id Id > , Mod.Usr_Userid > , Mod.Mod_Mod_Id > From Modulo Mod > Where Mod.Sn_Ativo = 'S' > And Mod.Usr_Userid = 'XXXXXXX' > And Mod.Tipo_Modulo = 3 > Connect By Prior > Mod.Mod_Id = Mod.Mod_Mod_Id > Start With > Mod.Mod_Mod_Id Is Null > _______________________________________________ Grupo de Usuários do PostgreSQL no Brasil Antes de perguntar consulte o manual http://pgdocptbr.sourceforge.net/ Para editar suas opções ou sair da lista acesse a página da lista em: http://pgfoundry.org/mailman/listinfo/brasil-usuarios
