sinat_38913556
sinat_38913556
2017-08-06 08:34
采纳率: 91.4%
浏览 1.5k

access 删除数据的问题

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可以正常删除

为什么呢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • fight_in_dl
    战在春秋 2017-08-06 22:00
    已采纳

    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;  
    //这样是否可行,家里没环境,请自行调试一下。
    

    如果对您有帮助,请采纳答案好吗,谢谢!

    点赞 评论

相关推荐