From: | "Neil Burrows" <maillist(at)remo(dot)demon(dot)co(dot)uk> |
---|---|
To: | <pgsql-sql(at)postgreSQL(dot)org> |
Subject: | A path through a tree |
Date: | 1999-01-12 14:34:16 |
Message-ID: | 000c01be3e38$a1d4a170$c6cb9284@towhee.gssec.bt.co.uk |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Hi,
OK, I have a feeling that this not something that can be done with SQL but I
may as well give it a shot.
Say you have a table with the following columns:
id int4 NOT NULL UNIQUE
parent int4
value varchar(8)
and each entry represents a node in a tree. So the top most node will have
no parent, and the next nodes will have the 1st node's id as their parent
etc etc etc.
If I have a leaf node, is there a SELECT statement that will give me all the
parent ids on the way to the root? (See diagram below for a different
[probably not better] description).
The tree can be of arbitrary depth.
where i = id and p = parent
i = 1
p = NULL
|
|
+-----+-----+
| |
i = 2 i = 3
p = 1 p = 1
|
|
+-----+-----+
| |
i = 4 i = 5
p = 3 p = 3
So if I wanted to find all the parent ids from node with index 5 to root I'd
get (3,1)?
As I say, I doubt there is a simple select that can do this but thought I
may as well ask.
Thanks in advance,
Neil Burrows
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 1999-01-12 15:17:27 | Re: storing strings with embedded '\' |
Previous Message | Remigiusz Sokolowski | 1999-01-12 13:48:03 | Re: [SQL] Tricky -to me!- SQL query. |