我有两列,confid1
和 confid2
。它们都具有相同的数据类型。
我不知何故需要将 confid2
带入 confid1
,但不连接它们。相反,将其插入到 confid1
下的新行中。
原文:
confid1 confid2
AACII1C1 AACII1C2
我试过使用 UNION 如下:
(SELECT confid1 as ID1 FROM dyndomrun)
UNION
(SELECT confid2 as ID2 FROM dyndomrun)
然后它返回 confid1
中的 confid1
和 confid2
的组合,这就是我要找的,如下所示:
confid1
AACII1C1
AACII1C2
现在,问题是另一个表中的一列与 confid1
和 confid2
链接,但它们都在一个列中,但在多行中。
现在,我尝试使用相同的 UNION
方法,只是将 pdbcode
添加到代码中,如下所示:
(SELECT confid1 as id1, conformer.pdbcode from dyndomrun, conformer where dyndomrun.confid1 = conformer.id)
UNION
(SELECT confid2 as id2, conformer.pdbcode from dyndomrun, conformer where dyndomrun.confid1 = conformer.id)
当它不应该返回重复的“pdbcode”值时,如下所示:
confid1, pdbcode
AACII1C1 2a4n
AACII1C2 2a4n
我希望它选择并返回与 confid1
和 confid2
相关的 pdbcode
列,如下所示:
confid1, pdbcode
AACII1C1 2a4n
AACII1C2 1b87
最佳答案
更改您的第二个 JOIN 以匹配使用 confid2?
(SELECT confid1 as id1, conformer.pdbcode
from dyndomrun JOIN conformer
ON dyndomrun.confid1 = conformer.id)
UNION
(SELECT confid2 as id2, conformer.pdbcode
from dyndomrun JOIN conformer
ON dyndomrun.confid2 = conformer.id)
注意:已更新为使用显式 JOIN 语法
关于sql - 将具有两列的行转换为一列的两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8646125/