1

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

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

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

此 SQL 仅选择表 A 中的所有内容,甚至是表 B 中的条目。

有什么想法我哪里出错了吗?

4

1 回答 1

5

如果你试试这个呢?

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)
于 2009-06-19T18:46:27.423 回答