我的表A有近15000个条目。我有第二个表B,其中7900个条目与表A的公共字段。

我需要从表A中提取第三个临时表C中的所有条目,除了那些也出现在表B中的条目。听起来很简单,我还没有找到方法。我得到的最接近的是:

INSERT INTO tableC
SELECT * 
FROM tableA
    INNER JOIN tableB
        ON tableA.field IS NOT tableB.field

这个SQL只选择tableA中的所有内容,甚至是tableB中的条目。

我出错的任何想法?

有帮助吗?

解决方案

如果你试试这个怎么办?

INSERT INTO tableC 
SELECT * 
FROM tableA 
WHERE tableA.field NOT IN (SELECT tableB.field FROM tableB)

或者您可以尝试备用EXISTS语法

INSERT INTO tableC 
SELECT * 
FROM tableA 
WHERE NOT EXISTS (SELECT * FROM tableB WHERE tableB.field = tableA.field)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top