zoukankan      html  css  js  c++  java
  • MYSQL 1093 之You can't specify target table for update in FROM clause解决办法

    You can't specify target table for update in FROM clause含义:不能在同一表中查询的数据作为同一表的更新数据。

    出现以上错误,是因为想将表自身的字段A的值作为被更新字段B的值而导致的。

    "自身更新自身"的正确写法:

    [sql] view plain copy
     
    1. UPDATE t_loan SET f_biddingAmount =   
    2. (  
    3.    SELECT amount FROM(  
    4.     SELECT ln.*, ln.f_amount amount FROM t_loan ln  
    5.    ) lnnew WHERE lnnew.f_loanId = t_loan.f_loanId  
    6. );  

    含义,查询t_loan中f_amount值作为f_biddingAmount被更新的值。

    我们想达到的效果是将t_loan表中的f_amount值作为表自身f_biddingAmout被更新的值,

    也就是将t_loan表中的f_biddingAmount都更新成f_amount的值。

    我们也可以在每一个select,update后面跟上条件等执行SQL。

    比如,在SELECT ln.*, ln.f_amount amount FROM t_loan ln后面加上WHERE条件等。

    以上问题只针对mysql数据库使用这么麻烦的写法,oracle中针对这种需求写起来相对比较简单。

    原文:http://blog.csdn.net/yhl_jxy/article/details/50856619

  • 相关阅读:
    快捷键 Msg消息
    类 多态(迟绑定)
    DLL发布 matlab代码发布
    获取ini内容 GetPrivateProfileString GetPrivateProfileInt
    路径操作 getModuleFileName() 等
    事件高级
    JS事件基础
    运动框架
    运动小宗
    workman安装使用
  • 原文地址:https://www.cnblogs.com/azhqiang/p/8523038.html
Copyright © 2011-2022 走看看