【发布时间】:2019-11-06 07:34:33
【问题描述】:
我需要根据一个公共列将两个表组合在一起。通常我只会在特定列上使用内部连接(我们称之为 parentID),但我需要将结果放在单独的行中。
表 A:
ID, ...
表 B:
ID, ParentID, SomeColB, ...
表 C:
ID, ParentID, SomeColC, ...
ParentID 指向表 A 的 ID。结果应该如下所示:
ParentID ID_A ID_B SomeColB SomeColC
1 10 20 'VAL_B1' NULL
1 10 20 NULL 'VAL_C1'
2 11 21 'VAL_B2' NULL
2 11 21 NULL 'VAL_C2'
...
所以我想在从表 B 和 C 中选择值之间交替,并将剩余的列保留为空。我该怎么做?
我尝试将它们连接在一起,但这导致结果被放在一行中。
编辑:表 B 和 C 都与表 A 具有 1-n 关系(表 a 中的一个条目可以从表 B 和 C 中的多个条目中引用)。表 B 和表 C 不相互引用,完全相互独立。
【问题讨论】:
-
您能否为您的表
A、B和C提供示例数据?A和B和A和C之间的关系是一对一的,还是一对多的关系?如果C有相关行,而B只有 2 行,你会看到什么? -
@Larnu 我编辑了我的问题
-
我没有看到任何示例数据?
-
ID_C 在哪里?
标签: sql sql-server database join union