SQL:在另一个相同表的两个字段上加入同一个表的两列

时间:2015-08-21 11:48:44

标签: sql db2

有以下结构:

表Alpha:

AlphaId
Name
BetaID
<some other fields>

Alpha与自身和与另一个Alpha的可选关系有关系, 所以有这个Alpha-Alpha表,记录了这种关系:

BetaID
AlphaId 

例如:

表Alpha:

AlphaId, Name, BetaID
100, abc, 123
101, xyz, 124
102, opq, 125

和表格Alpha-Alpha:

BetaID, AlphaId 
123, 100
123, 101
124, 101
125, 102

从Alpha-Alpha到Alpha的简单连接我可以管理

123, abc, 100
123, abc, 101
124, xyz, 101
125, opq, 102

123, 100, abc
123, 101, xyz
124, 101, xyz
125, 102, opq

但不是两个名字在一起。

我想得到的是:

123, abc, 100, abc
123, abc, 101, xyz
124, xyz, 101, xyz
125, opq, 102, opq

或只是

abc, abc
abc, xyz
xyz, xyz
opq, opc

我怎么能这样做呢?同一个表上的两个联接会引发错误。如果我将on条件与AND或OR组合,我将得不到相同的结果。

作为奖励,踢出自我关系的可能性也非常低,所以结果可能只是

abc, abc
abc, xyz

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用表别名,如下所示:

{{1}}