我已经为具有一对一关系的组织实施了CTE。现在我必须让一个孩子有多个父母。
我有一张表 OrgRelation ,你可以看到我在表格 OrgC 上添加了另一个父 OrgD
Child Parent
OrgA NULL
OrgB OrgA
OrgC OrgB
OrgC OrgD
上表代表了这个树视图:
OrgA
OrgB
OrgC
OrgD
OrgC
如何构建CTE查询?它与正常的CTE有什么不同?
WITH CTE AS
(
SELECT Parent, Child, 0 AS Level
FROM dbo.OrgRelation
WHERE Parent IS NULL
UNION ALL
SELECT e.Parent, e.Child, Level + 1
FROM dbo.OrgRelation AS e
INNER JOIN CTE AS d
ON e.Parent = d.Child
)
SELECT Parent, Child, Level
FROM CTE;
此外,如果我从下到上,我应该得到两个不同的结构,一个来自OrgD,另一个来自OrgB吧?