示例数据:
+----+-------+----------+
| org_id | Name | ParentID |
+----+-------+----------+
| 1 | Org1 | 2 |
| 2 | Org2 | NULL |
| 3 | Org3 | 5 |
| 5 | Org5 | 1 |
| 14 | Org14 | 1 |
+----+-------+----------+
如果我以 org_id 1 (Org1) 的用户身份登录。我想检索该用户的完整树。
我有以下递归查询:
WITH RECURSIVE cte (org_id, name, parent_id) AS (
SELECT org_id, name, parent_id
FROM organization
WHERE org_id = 1
UNION ALL
SELECT t1.org_id, t1.name, t1.parent_id
FROM organization t1
INNER JOIN cte t2 ON t1.parent_id = t2.org_id
)
SELECT * FROM cte;
但是,这个查询只给了我当前 id 的孩子(在这个例子中是 Org1)。我怎样才能在结果集中也包括所有的父母,这样我就可以准确地重建整个树?
编辑:我正在使用 MariaDB 版本 10.4.10