MySQL如何删除另一个表中的表中的记录

1 sql inner-join subtraction

我有一张表A,附近有15000个条目.我有第二个表B,有7900个条目,带有表A的公共字段.

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

INSERT INTO tableC
SELECT * 
FROM tableA
    INNER JOIN tableB
        ON tableA.field IS NOT tableB.field
Run Code Online (Sandbox Code Playgroud)

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

我出错的任何想法?

Jho*_*re- 6

怎么试试呢?

INSERT INTO tableC 
SELECT * 
FROM tableA 
WHERE tableA.field NOT IN (SELECT tableB.field FROM tableB)
Run Code Online (Sandbox Code Playgroud)

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

INSERT INTO tableC 
SELECT * 
FROM tableA 
WHERE NOT EXISTS (SELECT * FROM tableB WHERE tableB.field = tableA.field)
Run Code Online (Sandbox Code Playgroud)