我目前正在尝试从表 A 中删除表 B 中未使用相应记录的情况。表 A 具有 Section、SubSection、Code、Text 作为字段,其中前三个是主键。表 B 有 ID、Section、SubSection、Code 作为字段,其中四个都是主键。还有更多列,但它们与这个问题无关......只是想在我被问到为什么所有列都是表 B 的主键的一部分之前指出这一点。表 A 几乎是所有可能数据的存储库可以分配给一个实体,表 B 是他们被分配的地方。我想从表 A 中删除表 B 中未使用的所有记录。我尝试了以下操作但没有成功:
DELETE FROM Table A
WHERE NOT EXISTS (SELECT * from Table B
WHERE A.section = B.section
AND A.subsection = B.subsection
AND A.code = b.code)
如果我执行选择而不是删除,我会得到我正在寻找的子集,但是当我执行删除时,我会收到一个错误,指出表 A 存在语法错误。我会使用 NOT IN 语句,但是由于多列是主键的一部分,我只是不知道它是如何工作的。任何帮助将不胜感激。