开发者社区> 问答> 正文

这条SQL语句 一直报错,请大神帮忙看看啊!?报错

update cnumber as c set c.price = 10000 ,c.level = 1 where c.fomat in (select m.fomat from cnumber as m GROUP BY m.fomat  having count(1)=9 )

执行的时候报错如下:

[SQL]update cnumber as c set c.price = 10000 ,c.level = 1 where c.fomat in (select m.fomat from cnumber as m GROUP BY m.fomat  having count(1)=9 )

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

展开
收起
爱吃鱼的程序员 2020-06-08 09:43:34 403 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    update不能使用别名吧

    不使用别名,还是报错啊[SQL]updatecnumbersetprice=10000,level=1wherefomatin(selectm.fomatfromcnumberasmGROUPBYm.fomathavingcount(1)=9)[Err]1093-Youcan'tspecifytargettable'       

     

     

     

     

     

     

     

    多加一个嵌套,试试下面句子

    updatecnumberascsetc.price=10000,c.level =1wherec.fomatin(selectformatfrom(selectm.fomatfromcnumberasmGROUPBYm.fomat havingcount(1)=9))

    update时不能子查询条件同表

    再试试下面的句子,也可以的

    updatecnumberascinnerjoin(selectm.fomatfromcnumberasmGROUPBYm.fomat havingcount(1)=9) bonb. fomat=c.fomatsetc.price=10000,c.level =1

    是更新的表不能出现在from中

                        

     

                                                                                                                                                                                                            

     

    引用来自“tongcanghai”的评论

    多加一个嵌套,试试下面句子

    updatecnumberascsetc.price=10000,c.level =1wherec.fomatin(selectformatfrom(selectm.fomatfromcnumberasmGROUPBYm.fomat havingcount(1)=9))

    2020-06-08 09:43:48
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载