【发布时间】:2019-05-06 01:27:39
【问题描述】:
我已将通过共享父级关联的记录组链接在一起。不幸的是,有一些相当复杂的家庭群体,很明显,仅使用共同的父母关系是不够的——我还想考虑兄弟姐妹关系。
需要说明的是 - 这是实际的家庭组,如果他们是共同的母亲或父亲关系,则目前已确定,但在某些情况下,孩子可能不会与仍然通过兄弟姐妹与他们联系的另一个孩子分享父母。
所以在上面的例子中,Lou 与 Stacey 没有共同的父母关系,但 Stacey 是 Nate 的妹妹,而 Deb 的兄弟是 Lou 的妹妹,这将他们联系在一起。
为了争论,假设我们有一些这样的 SQL:
SELECT A.ID, A.SIBS FROM A
生成这样的数据集:
ID SIBS
A B
A C
B A
C A
C D
D C
我想从上述数据集中生成一个表,其中考虑了兄弟姐妹的兄弟姐妹 - 例如,兄弟姐妹 C 与兄弟姐妹 D 和兄弟姐妹 A 相关,但通过兄弟姐妹 A 与兄弟姐妹 B 相关。生成的表看起来像这样:
ID SIBS
A B
A C
A D
B C
B D
B A
C A
C D
C B
D C
D A
D B
任何建议将不胜感激。
【问题讨论】:
-
请将您的示例作为格式化文本插入。
-
你误用了兄弟这个词。兄弟姐妹是可传递的:如果 A 是 B 的兄弟姐妹,B 是 C 的兄弟姐妹,则 A 是 C 的兄弟姐妹。找到另一个更能描述这种关系的词。
-
@Tony94 - 抱歉,我总是遇到这个问题。我尝试从 excel 粘贴到帖子中,它会自动将其作为图片进行。
-
@RedFilter - 实际上,这是在谈论真正的家庭兄弟姐妹,但我明白你的意思。我不知道如何描述它们——有些共享父母,有些只是共享兄弟姐妹。
标签: sql oracle recursion hierarchy