假设您有一个表格 your_table
,其中包含以下列:id
(节点的唯一标识符)、name
(节点的名称)、pid
(指向父节点的ID)。
要递归查询树形数据,可以使用以下查询:
WITH RECURSIVE Tree AS (
SELECT id, name, pid
FROM your_table
WHERE id = :your_id
UNION ALL
SELECT t.id, t.name, t.pid
FROM your_table t
INNER JOIN Tree ON t.pid = Tree.id
)
SELECT * FROM Tree;
这个查询使用了递归的 WITH RECURSIVE
子句,它首先选择给定 id
的节点,然后递归地选择所有子节点,最终返回整个子树。
请注意,:your_id
是要查找的节点的ID,您需要将其替换为实际的节点ID。