如果有一个表,它有 2 列,ParentId 和 ChildId,并且可能有多个级别,如下表
ParentId ChildId
-1 1
-1 2
1 3
3 4
4 5
如果孩子没有父母,则用-1表示。
现在,如果我需要说 5 的最顶层的父级,那么它的父级是 4,其父级是 3,其父级是 1。所以 1 是其父级 = -1 的答案。
我在Sql server CTE 和递归示例中进行了讨论,看起来很复杂。
从谷歌搜索我知道我们可以使用 WITH AS 和 UNION 来实现这一点,任何人都可以阐明可以得到这个结果的通用 sql 吗?
谢谢
诺西布