Gracias por sus sugerencias...
![]() |
![]() |
|

create table self_key_table(
id numeric not null, -- el identificador de la tabla
self_key_id numeric, -- el identificador a si misma
data varchar(25) ); -- la info. que se va a almacenar
alter table self_key_table add constraint
self_key_table_pk primary key (id)
alter table self_key_table add constraint
self_key_fk foreign key (self_key_id)
references self_key_table( id )
-- Ahora insertamos datos en la tabla
-- Esta seria la raíz del árbol nivel 0
insert into self_key_table( id, self_key_id, data)
values(1,null,'México')
-- La primer rama 1° nivel
insert into self_key_table( id, self_key_id, data)
values(2,1,'Estado de México')
-- La siguiente rama 2° nivel
insert into self_key_table( id, self_key_id, data)
values(3,2,'Nezahualcoyotl')
-- 2° nivel
insert into self_key_table( id, self_key_id, data)
values(4,2,'Naucalpan')
-- 1° nivel
insert into self_key_table( id, self_key_id, data)
values(5,1,'Guanajuato')
-- 2° nivel
insert into self_key_table( id, self_key_id, data)
values(6,5,'Celaya')
-- 2° nivel
insert into self_key_table( id, self_key_id, data)
values(7,5,'León')
SELECT a.id, a.data, b.self_key_id AS pid, b.data as data_node
FROM self_key_table AS a
LEFT JOIN self_key_table AS b
ON a.id = b.self_key_id
ORDER BY a.id, a.data, b.data
id data pid data_node
---- ------------------- --- ------------------
1 México 1 Estado de México
1 México 1 Guanajuato
2 Estado de México 2 Naucalpan
2 Estado de México 2 Nezahualcoyotl
3 Nezahualcoyotl
4 Naucalpan
5 Guanajuato 5 Celaya
5 Guanajuato 5 León
6 Celaya
7 León



Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados