关于sql错误1093

昨天在我写了一条查询并删除重复数据,但是保存一条的sql发生了一个错误

DELETE FROM people

WHERE people_id NOT IN

(SELECT MIN(people_id) FROM people GROUP BY people/_no  HAVING COUNT(people_no)>1)


错误代码: 1093

You can't specify target table 'info_dossier_case' for update in FROM clause

百度查了之后成

DELETE FROM people

WHERE people_id NOT IN (SELECT c.* FROM

(SELECT MIN(people_id) FROM people GROUP BY people_no  HAVING COUNT(people_no)>1)c)

具体的原因呢就是mysql数据库不能在同一张表里同时进行查和删除操作,就有点像list在遍历(不用iterator)时不能进行删除操作

所以解决方法就是把查询出来的数据单独形成一个临时表,再从里面删除就行了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,554评论 0 13
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,499评论 0 10
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 1,162评论 0 0
  • 50个常用的sql语句Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname...
    哈哈海阅读 1,264评论 0 7
  • 许多人到湖镇游玩,都是奔着舍利塔去的。龙游境内现存八塔,除舍利塔为佛塔外,其他都是文峰塔。而在浙江...
    慧一文阅读 982评论 0 3