博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Err] 1093 - You can't specify target table 's' for update in FROM clause
阅读量:5136 次
发布时间:2019-06-13

本文共 707 字,大约阅读时间需要 2 分钟。

 

 

      执行SQL

DELETE from  book WHERE id IN(SELECT id FROM (SELECT id,name FROM book WHERE name  IN(SELECT  name FROM book  GROUP BY name HAVING count(name) > 1) ) t WHERE id NOT IN (SELECT  id FROM book  GROUP BY name HAVING count(name) > 1 ));

 

      出现错误:

[Err] 1093 - You can't specify target table 's' for update in FROM clause

 

      执行SQL语句时出现这个错误。原因是在更新这个表和数据时又查询了它,而查询的数据又做了更新的条件

 

      解决方法:把要删除的数据查询出来做为一个第三方表,然后进行删除。

DELETE book from book , (   SELECT id FROM (		SELECT id FROM book WHERE name IN(SELECT  name FROM book  GROUP BY name HAVING count(name) > 1)    ) t    WHERE id NOT IN (SELECT  id FROM book  GROUP BY name HAVING count(name) > 1)) as a WHERE book.id = a.id;

 

 

 

转载于:https://www.cnblogs.com/new0801/p/6146607.html

你可能感兴趣的文章
您上次已将进行的搜狗输入法的安装或卸载,操作要求重启。您在重启之后才能继续新的输入法安装卸载程序。...
查看>>
MySQL数据库应用 从入门到精通 学习笔记
查看>>
[转载]Ocelot简易教程(二)之快速开始2
查看>>
设计模式的七大原则
查看>>
java保留两位小数的方法
查看>>
Oracle中将查询出的多条记录的某个字段拼接成一个字符串的方法
查看>>
Centos6安装SaltStack
查看>>
网络编程练习 -- POST-JSON数据
查看>>
php判断是手机访问还是电脑访问
查看>>
链接字符收藏
查看>>
Exchange 2016中的削减内容
查看>>
Dicom DIR文件格式
查看>>
JDBC
查看>>
BCP命令
查看>>
AT24Cxx学习笔记
查看>>
跑得最快的10种动物
查看>>
java第六次作业
查看>>
DjangoORM相关(单表操作)
查看>>
分享一个生成反遗忘复习计划的java程序
查看>>
公共开发中js代码的管理
查看>>