MYSQL之You can’t specify target table for update in FROM cla详解数据库

MYSQL之You can't specify target table for update in FROM cla详解数据库

在做数据库更新的时候遇到了上面的那个问题:You can’t specify target table for update in FROM clause

经过排查发现是sql本身的问题,导致mysql数据库识别不了sql语句。

原始sql为:

UPDATE WC_YYPSDDMXB SET ITEM_NAME =(SELECT ITEM_NAME FROM WC_YYPSDDMXB WHERE DLY_ORDER_ITEM_ID=’301704040954000044′) WHERE DLY_ORDER_ITEM_ID =’301704051557000005′;

修改之后的sql为:

UPDATE WC_YYPSDDMXB SET ITEM_NAME =(SELECT ub.itname FROM  (SELECT ITEM_NAME AS itname FROM WC_YYPSDDMXB WHERE DLY_ORDER_ITEM_ID=’301704040954000044′) ub) WHERE DLY_ORDER_ITEM_ID =’301704051557000005′;

从这两个sql可以看出后者加了一个嵌套查询,于是解决了问题。

MYSQL之You can't specify target table for update in FROM cla详解数据库

转载请注明来源网站:blog.ytso.com谢谢!

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/database/4514.html

(0)
上一篇 2021年7月16日 21:59
下一篇 2021年7月16日 21:59

相关推荐

发表回复

登录后才能评论