From: | "Marco Antonio" <marcoantoniofrias(at)gmail(dot)com> |
---|---|
To: | "Marco Antonio" <marcoantoniofrias(at)gmail(dot)com>, allein(dot)mike(at)gmail(dot)com, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: consultas jerarquicas en postgresql |
Date: | 2007-11-09 21:20:30 |
Message-ID: | 33e030de0711091320y7201f2eej2067b2113af8c280@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Revisando las entradas en el historial de la lista me tope con esta solución:
4. modelo + pl/pgsql de Hubert Lubaczewski:
La página de la implementación (bueno el idioma es polaco... pero se
entiende la idea):
http://www.depesz.com/various/various-sqltrees-implementation.php
En el tutorial/artículo la idea:
...................... ___sql___
...................../.....................\
.postgresql..............____oracle_____
..........|...................../...............|....................\
......linux........solaris..........linux.........windows
.........................................../..........\
.....................................glibc1...glibc2
el modelo de la db:
CREATE TABLE kategorie (
id serial,
name TEXT,
PRIMARY KEY (id)
);
CREATE TABLE powiazania (
parent_id integer NOT NULL references kategorie (id),
child_id integer NOT NULL references kategorie (id),
depth integer
);
algunos datos insertados:
SELECT * FROM kategorie;
id | name
----+---------
1 | sql
2 | oracle
3 | solaris
4 | windows
(4 rows)
SELECT * FROM powiazania;
parent_id | child_id | depth
-----------+----------+-------
1 | 1 | 0
2 | 2 | 0
1 | 2 | 1
3 | 3 | 0
2 | 3 | 1
1 | 3 | 2
4 | 4 | 0
2 | 4 | 1
1 | 4 | 2
(9 rows)
el resultado esperado, después de varias funciones en pl/pgsql:
SELECT id, repeat (' ', getitemlevel(id)) || '+- ' || name FROM
kategorie ORDER BY createtreepath(id);
id | ?column?
----+-----------------
1 | +- sql
8 | +- postgresql
9 | +- linux
2 | +- oracle
3 | +- solaris
5 | +- linux
6 | +- glibc1
7 | +- glibc2
4 | +- windows
(9 rows)
--
Saludos y abrazos...
Marco Antonio Frias Butron
Slackware Linux User
Linux Registered User #356229 - http://counter.li.org/
http://marcoantoniofrias.uni.cc
From | Date | Subject | |
---|---|---|---|
Next Message | WILLIAM PARRA | 2007-11-09 23:12:54 | Actualizacion en Cascada de llave primaria |
Previous Message | Espartano | 2007-11-09 20:52:48 | Re: Ofreciendo el uso de PostgreSQL en tierra de MySQL (OFFTOPIC) |