相关疑难解决方法(0)

尝试在不存在时删除不起作用.主键中有多列

我目前正在尝试从表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)
Run Code Online (Sandbox Code Playgroud)

如果我执行Select而不是删除,我会得到我要查找的子集,但是当我执行删除时,我得到一个错误,表示表A中存在语法错误.我会使用NOT IN语句,但是多列是主键的一部分,我只是看不出它是如何工作的.任何帮助将不胜感激.

sql exists not-exists sql-delete

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

exists ×1

not-exists ×1

sql ×1

sql-delete ×1