您好,我想知道是否可以进行“笛卡尔积”操作 在列记录上。这是场景:
PIID1 PIID2
PIID11 (Intially empty)
PIID12 (Initially empty)
PIID13 (Initially empty)
必需的输出(删除自我关系):
PIID1 PIID2
-------- --------------------
PIID11 PPIID12
PIID11 PPIID13
PPIID12 PIID11
PPIID12 PPIID13
PPIID13 PPIID12
PPIID13 PPIID11
请发布您的解决方案。
答案 0 :(得分:1)
首先使用自联接插入新行:
INSERT INTO tableX
(piid1, piid2)
SELECT
a.piid1, b.piid1
FROM
tableX a
CROSS JOIN
tableX b
WHERE
a.piid1 <> b.piid1 ;
然后删除原始行:
DELETE FROM tableX
WHERE piid2 IS NULL ;
答案 1 :(得分:0)
尝试SELF JOIN
:
Select
a.pIID1 as PIID1,
b.pIID1 as PIID2
from
table a,
(Select pIID1 from table) b
WHERE a.pIID1<>b.PIID1