車水馬龍 2021-06-25 15:53 采纳率: 100%
浏览 30
已采纳

MySQL更新A表时不能嵌套查询A表吗?

MySQL执行如下语句,报错提示:You can't specify target table 'a' for update in FROM clause;我要更新A表的一个字段难道不能再嵌套查询A表吗?

但如果给 UPDATE同时添加a表和t表,进行如下查询:

UPDATE a表 a,t表 t 
SET a.SETTLE_DATE = '20210625' 
WHERE
    a.REF_NO = t.REF_NO 
    AND t.SOURCE_REFERENCE in (条件集合)

这样就可以执行通过,很好奇这两者具体的区别是什么,为什么原问题中的方式会报出那样的错误?而后一种却又不报错?

 

有劳诸位大佬得空指导小弟了,感激不尽!

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2021-06-25 16:37
    关注

    因为你同时对同一张表做了查询和修改操作。不能同时对一张表做多种操作。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?