【问题标题】:updating column value depending on the same value of two tables根据两个表的相同值更新列值
【发布时间】:2014-07-10 04:32:10
【问题描述】:

我有一个关于 oracle sql 的问题。所以我想要的是根据另一个表中的相同事件更新一个表中的列。这是我的sql

update master_drawing 
   set master_drawing.subcont_status = 'ASSIGNED' 
 where master_drawing.head_mark = master_drawing_assigned.head_mark

所以在MASTER_DRAWINGMASTER_DRAWING_ASSIGNED 中都有两个完全相同的列称为HEAD_MARK。我想做的就像一张支票。如果在这两个表中存在相同的值,则将列 SUBCONT_STATUS 更新为 'ASSIGNED'

错误信息是:

[错误] 执行 (1: 103): ORA-00904: "MASTER_DRAWING_ASSIGNED"."HEAD_MARK": 标识符无效

请帮帮我。

【问题讨论】:

    标签: sql oracle join sql-update inner-join


    【解决方案1】:

    试试这个:

    update master_drawing md
    set md.subcont_status = "ASSIGNED"
    where exists
    (select 1 
     from master_drawing_assigned mda
     where md.head_mark = mda.head_mark)
    

    【讨论】:

      【解决方案2】:

      试试这个:

      UPDATE md 
      SET md.subcont_status = 'ASSIGNED' 
      FROM master_drawing md 
      INNER JOIN master_drawing_assigned mda ON md.head_mark = mda.head_mark;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-28
        • 2021-09-04
        • 1970-01-01
        • 2023-02-22
        • 2015-11-16
        • 1970-01-01
        • 1970-01-01
        • 2017-03-24
        相关资源
        最近更新 更多