MySQL can’t specify target table for update in FROM clause

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL can’t specify target table for update in FROM clause相关的知识,希望对你有一定的参考价值。

 翻译:MySQL不能指定更新的目标表在FROM子句

源SQL语句:

 

[sql] view plain copy
 
 print?
  1. delete from t_official_sys_user  
  2. where USER_NAME IN(SELECT USER_NAME FROM t_official_sys_user b group by b.`USER_NAME` having  count(1) > 1)  



 

执行报以下错误:

 

[sql] view plain copy
 
 print?
  1. [SQL]   
  2.   
  3. delete from t_official_sys_user  
  4. where USER_NAME IN(SELECT USER_NAME FROM t_official_sys_user b group by b.`USER_NAME` having  count(1) > 1)  
  5.   
  6. [Err] 1093 - You can‘t specify target table ‘t_official_sys_user‘ for update in FROM clause  



 

解决代码如下:

 

[sql] view plain copy
 
 print?
  1. delete from t_official_sys_user  
  2. where USER_NAME IN(
  3. select USER_NAME from
  4.  ( 
  5. SELECT USER_NAME FROM t_official_sys_user b group by b.`USER_NAME` having  count(1) > 1
  6. as temtable 
  7. );  

分析:

先把要删除的目标放到一张临时表再把要删除的条件指定到这张临时表即可。

http://blog.csdn.net/bluestarf/article/details/46622455

 http://www.cnblogs.com/nick-huang/p/4412818.html

以上是关于MySQL can’t specify target table for update in FROM clause的主要内容,如果未能解决你的问题,请参考以下文章

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

mysql You can't specify target table for update in FROM clause解决方法

mysql中You can't specify target table for update in FROM clause错误

mysql error:You can't specify target table for update in FROM clause

MySQL中You can't specify target table for update in FROM clause一场

mysql中You can’t specify target table for update in FROM clause错误解决方法