【发布时间】:2019-10-16 13:23:12
【问题描述】:
Entity
---------
ID
TypeAID
TypeBID
TypeAID 和 TypeBID 是可为空的字段,其中行可以输入一个、两个或一个值,并且两个 IDs 都指向同一个表 Entity.ID(自引用)。
有什么方法可以通过 3 级深度结构递归得到parent -> child、parent -> grandchild、child -> grandchild 关系的平面结构?
这是一个示例,其中第一个表是普通层次结构,第二个是所需的平面输出。
数据:
Row ID TypeAID TypeBID
1 A NULL NULL
2 B NULL NULL
3 C A NULL
4 D B C
5 E NULL C
想要的结果:
Row Parent Child
1 A C
2 A D
3 A E
4 B D
5 C D
6 C E
【问题讨论】:
-
是的,这是可能的。如果你想了解你需要如何提供一些细节。像样本数据和所需的输出。 minimal reproducible example
-
任何想法从哪里开始?
-
你必须使用公用表表达式stackoverflow.com/questions/4740748/…
-
@SeanLange 我添加了示例输入/输出。
-
数据图片几乎一文不值。 Why?你需要一个递归 cte 来解决这个问题。
标签: sql-server recursion self-referencing-table