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

转载 2016年08月31日 16:18:45

原文地址:http://blog.csdn.net/priestmoon/article/details/8016121

mysql中You can't specify target table <tbl> for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)。 例如下面这个sql:

delete from tbl where id in 
(
        select max(id) from tbl a where EXISTS
        (
            select 1 from tbl b where a.tac=b.tac group by tac HAVING count(1)>1
        )
        group by tac
)


改写成下面就行了:

delete from tbl where id in 
(
    select a.id from 
    (
        select max(id) id from tbl a where EXISTS
        (
            select 1 from tbl b where a.tac=b.tac group by tac HAVING count(1)>1
        )
        group by tac
    ) a
)


也就是说将select出的结果再通过中间表select一遍,这样就规避了错误。注意,这个问题只出现于mysql,mssql和oracle不会出现此问题。


MySQL 中 You can't specify target table '表名' for update in FROM clause错误解决办法

在MySQL中,写SQL语句的时候 ,可能会遇到You can't specify target table '表名' for update in FROM clause这样的错误,它的意思是说,不能...
  • qq_29672495
  • qq_29672495
  • 2017年05月23日 22:32
  • 4164

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

翻译:MySQL不能指定更新的目标表在FROM子句 源SQL语句: delete from t_official_sys_user where USER_NAME IN(SELECT USER_NAM...
  • bluestarf
  • bluestarf
  • 2015年06月24日 15:22
  • 7454

mysql的1093错误You can't specify target table 't' for update in FROM clause 简单解决

mysql> delete from t where id in (select id from t where id 5);   ERROR 1093 (HY000): You ca...
  • chenhao0568
  • chenhao0568
  • 2017年03月03日 10:49
  • 538

mysql You can't specify target table for update in FROM clause异常问题.

这个问题在ORACLE是不会发生的,但是如果你使用的MYSQL,如果你在更新一个表的数据并且这个表的条件还是这个表的就会出现这个问题,比如: UPDATE sys_datadict sd  set s...
  • xun573017588
  • xun573017588
  • 2017年04月19日 10:55
  • 249

MYSQL之You can't specify target table for update in FROM clause解决办法

You can't specify target table for update in FROM clause含义:不能在同一表中查询的数据作为同一表的更新数据。 例如: 我想查询t_user_as...
  • yhl_jxy
  • yhl_jxy
  • 2016年03月11日 16:12
  • 7207

mysql 出现You can't specify target table for update in FROM clause错误的解决方法

本文将介绍mysql出现You can't specify target table for update in FROM clause错误的原因及解决方法。...
  • fdipzone
  • fdipzone
  • 2016年09月28日 23:39
  • 26015

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

[Err] 1093 - You can't specify target table 's' for update in FROM clause 执行SQL语句时出现这个错误。原因是在更新这个表和...
  • yaerfeng
  • yaerfeng
  • 2012年08月17日 11:18
  • 20096

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

UPDATE sdb_goods SET disabled='true' WHERE goods_id IN(SELECT goods_id FROM sdb_goods WHERE disabled...
  • e421083458
  • e421083458
  • 2013年01月05日 13:33
  • 969

[Django](1093, "You can't specify target table 'fee_details_invoices' for update in FROM clause") 错误

dele_id = Fee_details_invoices.objects.filter(fee_detail_id__in=fee_id_list, return_type='2').values...
  • lzz957748332
  • lzz957748332
  • 2014年07月23日 16:57
  • 2865

ERROR 1093 (HY000): You can't specify target table 'b' for update in FROM clause

今天开发大神说有一个update的普通sql执行有问题,抱怨mysql太烂,后来看了sql后发现原来是update 更新使用where条件使用了本身表的子查询的问题,不得不说mysql有这方面的限制不...
  • lidan3959
  • lidan3959
  • 2014年01月02日 14:44
  • 1616
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql中You can't specify target table for update in FROM clause错误
举报原因:
原因补充:

(最多只允许输入30个字)