PostgreSQL 递归查询
PostgreSQL 递归查询
向下递归
WITH RECURSIVE r AS (
SELECT * FROM place WHERE id = 2
union ALL
SELECT place.* FROM place, r WHERE place.parent_id = r.id
)
SELECT * FROM r ORDER BY id;
向上递归
WITH RECURSIVE r AS (
SELECT * FROM place WHERE id = 8
union ALL
SELECT place.* FROM place, r WHERE place.id = r.parent_id
)
SELECT * FROM r ORDER BY id;