我是SQL的新手,我在试图编写一个简单的select来生成表格时感到很生气。 我有一个表格,其中包含不同代码之间的关系,我必须生成一个表格,该表格将与相同密钥相关的每个代码相关联,如下所示:
TABLE CODES
CODE|KEY
-------------
A|B
C|B
D|B
E|F
G|F
GENERATED TABLE
--------------------
A|B
B|A
C|B
B|C
D|B
B|D
A|C
C|A
A|D
D|A
C|D
D|C
E|F
F|E
G|F
F|G
E|G
G|E
希望我能够解释我的问题。
由于
答案 0 :(得分:0)
我真的不明白你的问题?
要从select语句创建新表,可以使用
SELECT *
INTO CORRELATED
FROM CODES
这是你的意思吗?
答案 1 :(得分:0)
阻止行加入自身的自联接
select c1.code,c2.code
from codes c1 join codes c2
on c1.key = c2.key and c1.code != c2.code
应该返回
A|C
A|D
C|A
C|D
D|A
D|C
E|G
G|E
工作,但它不会返回您在代码表中需要行B|B
和F|F
的B和F配对
或者,您可以将结果与基表联合起来:
select c1.code as code1,c2.code as code2
from codes c1 join codes c2
on c1.key = c2.key and c1.code != c2.code
union
select code as code1,key as code2
from codes
union
select key as code1,codes as code2
from codes
应该返回
Code1|Code2
A|C
C|A
A|D
D|A
C|D
D|C
E|G
G|E
A|B
C|B
D|B
E|F
G|F
B|A
B|C
B|D
F|E
F|G