您好,登錄后才能下訂單哦!
在 PostgreSQL 中,要執行遞歸查詢,可以使用 WITH RECURSIVE
語句
WITH RECURSIVE category_tree AS (
-- 遞歸起點:獲取根節點(沒有父節點的節點)
SELECT id, name, parent_id
FROM categories
WHERE parent_id IS NULL
UNION ALL
-- 遞歸條件:獲取子節點
SELECT c.id, c.name, c.parent_id
FROM categories c
JOIN category_tree ct ON c.parent_id = ct.id
)
SELECT * FROM category_tree;
在這個例子中,我們首先定義了一個名為 category_tree
的遞歸公共表表達式(CTE)。在遞歸起點部分,我們從 categories
表中選擇所有根節點(即 parent_id
為 NULL 的節點)。然后,在遞歸條件部分,我們通過將子節點與已經檢索到的節點進行連接來獲取子節點。最后,我們從 category_tree
CTE 中選擇所有數據。
這樣,我們就可以獲得一個包含所有類別及其子類別的層次結構。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。