DELETE emp1.*
FROM emp1 INNER JOIN emp2 ON (emp1.cum1=emp2.cum1)AND
(emp1.cum2=emp2.cum2);
这个sql无法执行 显示 无法从指定数据表中删除
DELETE DISTINCTROW emp1.*
FROM emp1 INNER JOIN emp2 ON (emp1.cum1=emp2.cum1)AND
(emp1.cum2=emp2.cum2);
这个sql可以正常删除
为什么呢
DELETE emp1.*
FROM emp1 INNER JOIN emp2 ON (emp1.cum1=emp2.cum1)AND
(emp1.cum2=emp2.cum2);
这个sql无法执行 显示 无法从指定数据表中删除
DELETE DISTINCTROW emp1.*
FROM emp1 INNER JOIN emp2 ON (emp1.cum1=emp2.cum1)AND
(emp1.cum2=emp2.cum2);
这个sql可以正常删除
为什么呢
emp1表和emp2表使用 非主键 进行join操作时,emp1表可能会产生 重复行。
这种情况下,Access执行Delete命令会感到迷惑。
因此需要加上 DISTINCTROW 关键字。
实际上,并不建议用Left Join、Right Join、Inner Join来删除某张表的记录。
除了存在上述指出的问题,性能也不好。
回到题目,楼主可以再分析下逻辑,是否一定要使用join。
DELETE emp1.*
FROM emp1 WHERE emp1.cum1=emp2.cum1 AND
emp1.cum2=emp2.cum2;
//这样是否可行,家里没环境,请自行调试一下。
如果对您有帮助,请采纳答案好吗,谢谢!