在做数据库更新的时候遇到了上面的那个问题: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可以看出后者加了一个嵌套查询,于是解决了问题。
转载请注明来源网站:blog.ytso.com谢谢!
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/database/4514.html