SQL:根据两个字段从表A中删除表B中不存在的记录

Bri*_*son 2 mysql sql

这可能很简单,但我无法绕过它.我试过IN,不是EXISTS,除了等等......但似乎仍然无法做到这一点.

我有两张桌子.

Table A
-----------

BK
NUM

Table B
------------

BK
NUM
Run Code Online (Sandbox Code Playgroud)

如何编写查询以从表A中删除基于这两个字段不在表B中的所有记录.因此,如果表A有BK = 1且NUM = 2的记录,那么它应该在表B中查看.如果表B也有BK = 1且NUM = 2的记录则不执行任何操作,但如果没有,则删除该记录来自表A.这有意义吗?

任何帮助深表感谢.

M K*_*aid 5

你可以这样做

delete from tablea
where (BK,NUM) not in 
(select BK,NUM from tableb)
Run Code Online (Sandbox Code Playgroud)

运用 exists

delete from tablea a
where not exists
(select 1 from tableb where BK=a.BK and NUM = a.NUM)
Run Code Online (Sandbox Code Playgroud)