Обсуждение: Help with a "recursive" query

Поиск
Список
Период
Сортировка

Help with a "recursive" query

От
alet@unice.fr (Jerome Alet)
Дата:
Hi,

I've got a table like this :

id        parent      description
01        00          xxxxxx
02        00          xxxxxx
03        01          xxxxxx
04        02          xxxxxx
05        01          xxxxxx
06        05          xxxxxx
07        03          xxxxxx
08        07          xxxxxx
09        00          xxxxxx
10        02          xxxxxx


I want to get all tuples which have id=01 as their parent
or ancestor, i.e. :
03, 05, 06, 07, 08

this to represent a sort of n-tree :
01      /  \     /    \    /      \   03      05  /          \ /            \/              \
07               06
|
|
|
08

this example is simple because each node has at most one child, but in
my real data there's no such limit.

any idea ?

thanks in advance

Jerome Alet


Re: Help with a "recursive" query

От
Oleg Bartunov
Дата:
Jerome,

our module 'tree' is ideally suited for your problem.
It could be downloaded from http://www.sai.msu.su/~megera/postgres/gist/
Unfortunately, we have no time to write doc in english. Several people
in mailing list have discussed it. Probably, they could help.
Oleg
On Wed, 19 Jun 2002, Jerome Alet wrote:

> Hi,
>
> I've got a table like this :
>
> id        parent      description
> 01        00          xxxxxx
> 02        00          xxxxxx
> 03        01          xxxxxx
> 04        02          xxxxxx
> 05        01          xxxxxx
> 06        05          xxxxxx
> 07        03          xxxxxx
> 08        07          xxxxxx
> 09        00          xxxxxx
> 10        02          xxxxxx
>
>
> I want to get all tuples which have id=01 as their parent
> or ancestor, i.e. :
>
>     03, 05, 06, 07, 08
>
> this to represent a sort of n-tree :
>
>     01
>        /  \
>       /    \
>      /      \
>     03      05
>    /          \
>   /            \
>  /              \
> 07               06
> |
> |
> |
> 08
>
> this example is simple because each node has at most one child, but in
> my real data there's no such limit.
>
> any idea ?
>
> thanks in advance
>
> Jerome Alet
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>
Regards,    Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83