Firebird 2.1 を使用しています。テーブル名 Folders があり、次のフィールドがあります。
FolderID
ParentFolderID
FolderName
ルート フォルダーの場合、ParentFolderID は -1 です。それ以外の場合は、親フォルダーの ID が含まれます。
次の再帰クエリは、フォルダーの親を順番に返します。
WITH RECURSIVE hierarchy (folderid, ParentFolderId, FolderName) as (
SELECT folderid, ParentFolderId, FolderName
FROM folders
WHERE folderid = :folderid
UNION ALL
SELECT folderid, ParentFolderId, FolderName
FROM folders f
JOIN hierarchy p ON p.parentFolderID = f.folderID
)
SELECT List(FolerName, ' \ ') FROM hierarchy
結果は次のようになります。
子\親\親の親
上記のクエリの結果を逆にして取得するにはどうすればよいですか。
親の親\親\子?
ありがとうございました!