我的表A有近15000个条目。我有第二个表B,其中7900个条目与表A的公共字段。
我需要从表A中提取第三个临时tableC中的所有条目,除了那些也出现在表B中的条目。听起来很简单,我还没有找到方法。我得到的最接近的是:
INSERT INTO tableC
SELECT *
FROM tableA
INNER JOIN tableB
ON tableA.field IS NOT tableB.field
这个SQL只选择tableA中的所有内容,甚至是tableB中的条目。
我出错的任何想法?
答案 0 :(得分:6)
如果你试试这个怎么办?
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)