我的数据库里有两张桌子(A和B),我需要把两者结合起来。这两个表的主键都是复合键(9列),表中有重复的行。
我可以使用“除了”来获取SELECT A的结果中的行,而不是SELECT B的结果,但是我还需要检索其他不重复行的列。也就是说。
SELECT ckA1, ckA2, ... ckA9, columnA1, columnA2, ... columnAN
FROM A
EXCEPT
SELECT ckB1, ckB2, ... ckB9, columnB1, columnB2, ... columnBN
FROM B其中ckA1 = ckB1,ckA2 = ckB2,ckA9 = ckB9,但columnA1不一定等于columnB1,columnA2不一定等于columnB2,等等。
有办法解决这个问题吗?
发布于 2015-03-26 18:54:56
使用NOT EXISTS运算符和关联子查询:
SELECT ckA1, ckA2, ... ckA9, columnA1, columnA2, ... columnAN
FROM A
WHERE NOT EXISTS (
SELECT 1 FROM B
WHERE ckA1 = ckB1, ckA2 = ckB2, ... ckA9 = ckB9
)https://stackoverflow.com/questions/29285853
复制相似问题