我正在使用火鸟 2.1。有一个表名Folders
,字段:
- 文件夹ID
- 父文件夹 ID
- 文件夹名称
ParentFolderID
如果它是根文件夹,则为 -1 - 否则它包含父文件夹的 ID。
如何找到低级节点的所有父节点(直到根文件夹)?
我需要递归查询吗?(火鸟支持他们)
我正在使用火鸟 2.1。有一个表名Folders
,字段:
ParentFolderID
如果它是根文件夹,则为 -1 - 否则它包含父文件夹的 ID。
如何找到低级节点的所有父节点(直到根文件夹)?
我需要递归查询吗?(火鸟支持他们)
像这样的东西:
WITH RECURSIVE hierarchy (folderid, ParentFolderId, FolderName) as (
SELECT folderid, ParentFolderId, FolderName
FROM folders
WHERE ParentFolderID = -1
UNION ALL
SELECT folderid, ParentFolderId, FolderName
FROM folders f
JOIN hierarchy p ON p.folderID = f.parentFolderID
)
SELECT *
FROM hierarchy
编辑:以下查询将“向上”遍历层次结构,查找给定文件夹的所有父级。
WITH RECURSIVE hierarchy (folderid, ParentFolderId, FolderName) as (
SELECT folderid, ParentFolderId, FolderName
FROM folders
WHERE folderid = 42
UNION ALL
SELECT folderid, ParentFolderId, FolderName
FROM folders f
JOIN hierarchy p ON p.parentFolderID = f.folderID
)
SELECT *
FROM hierarchy