Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
-- PostgreSQL --
WITH RECURSIVE temp1 ( "ID","PARENT","DESCRIPTION",PATH, LEVEL ) AS (
SELECT T1."ID",T1."PARENT", T1."DESCRIPTION", CAST (T1."ID" AS VARCHAR (50)) as PATH, 1
FROM KPO T1 WHERE T1."PARENT" IS NULL
union
select T2."ID", T2."PARENT", T2."DESCRIPTION", CAST ( temp1.PATH ||'->'|| T2."ID" AS VARCHAR(50)) ,LEVEL + 1
FROM KPO T2 INNER JOIN temp1 ON( temp1."ID"= T2."PARENT") )
select * from temp1 ORDER BY PATH LIMIT 100
-- OrientDB --
select id , parent , description , $path , $depth from (
traverse child from (
select from kpo where id = 'KPO'
)
)
Хранение иерархических структур. Симбиоз «Closure Table» и «Adjacency List»