Обсуждение: Q: Tree traversal with SQL query?

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

Q: Tree traversal with SQL query?

От
Adrian von Bidder
Дата:
Hi,

Is there any way to do tree traversal with only one SQL query (no
procedure/function)?

CREATE TABLE foo (
  node INTEGER,
  parent INTEGER REFERENCES foo(node)
);

Ideally the output would be a depth-first tree traversal starting at root
(marked by parent == node, for example.)

Obviously, I can do this with "normal" programming and loops, but it bugged
me a while if its at all possible doing this in one query.

cheers
-- vbi

--
Available for key signing in Zürich and Basel, Switzerland
                    (what's this? Look at http://fortytwo.ch/gpg/intro)

Re: Q: Tree traversal with SQL query?

От
Alban Hertroys
Дата:
Adrian von Bidder wrote:
> Hi,
>
> Is there any way to do tree traversal with only one SQL query (no
> procedure/function)?
>
> CREATE TABLE foo (
>   node INTEGER,
>   parent INTEGER REFERENCES foo(node)
> );
>
> Ideally the output would be a depth-first tree traversal starting at root
> (marked by parent == node, for example.)
>
> Obviously, I can do this with "normal" programming and loops, but it bugged
> me a while if its at all possible doing this in one query.

Have a look at contrib/ltree ;)

--
Alban Hertroys
alban@magproductions.nl

magproductions b.v.

T: ++31(0)534346874
F: ++31(0)534346876
M:
I: www.magproductions.nl
A: Postbus 416
   7500 AK Enschede

// Integrate Your World //