当前位置:Gxlcms > 数据库问题 > 解决MySQL Update:You can't specify target table for update in FROM clause

解决MySQL Update:You can't specify target table for update in FROM clause

时间:2021-07-01 10:21:17 帮助过:13人阅读

tms_jyxx_mx set gg_dm = 1004 where jyxx_id in (SELECT t1.jyxx_id as jyxx_id FROM tms_jyxx t1, tms_jyxx_mx t2 WHERE t1.sjmc = 保定白沟新城铭磊加油站 AND t1.jyxx_id = t2.jyxx_id AND t2.ljqh = 14 AND t2.jysj >= 2019-04-30 10:17:22 AND t2.jysj <= 2019-09-26 23:59:59 ORDER BY t2.jysj desc)

改成下面的就行了:

update 
    tms_jyxx_mx 
set 
    gg_dm = 1004 
where 
    jyxx_id 
in 
    (SELECT
        tt.jyxx_id
    from
    (SELECT
        t1.jyxx_id as jyxx_id
    FROM
        tms_jyxx t1,
        tms_jyxx_mx t2
    WHERE
        t1.sjmc = 保定白沟新城铭磊加油站
    AND t1.jyxx_id = t2.jyxx_id
    AND t2.ljqh = 14
    AND t2.jysj >= 2019-04-30 10:17:22
    AND t2.jysj <= 2019-09-26 23:59:59
    ORDER BY
        t2.jysj
    desc) tt)

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

解决MySQL Update:You can't specify target table for update in FROM clause

标签:table   rac   加油   color   rom   date   you   span   oracl   

人气教程排行