提问者:小点点

如何在更新查询中执行三个表联接?


我问了一个问题,得到的回答很有帮助。

   UPDATE TABLE_A a JOIN TABLE_B b
   ON a.join_col = b.join_col AND a.column_a = b.column_b
   SET a.column_c = a.column_c + 1

现在,如果有三个表涉及到类似这样的内容,我希望这样做。

    UPDATE tableC c JOIN tableB b JOIN tableA a

我的问题基本上是...是否可以在UPDATE语句上执行三个表连接?它的正确语法是什么?

我要做以下事情吗?

 JOIN tableB, tableA
 JOIN tableB JOIN tableA

共3个答案

匿名用户

答案是肯定的,你可以。

试着这样做:

UPDATE TABLE_A a
    JOIN TABLE_B b ON a.join_col = b.join_col AND a.column_a = b.column_b
    JOIN TABLE_C c ON [condition]
SET a.column_c = a.column_c + 1

对于常规更新联接:

UPDATE TABLEA a
JOIN TABLEB b ON a.join_colA = b.join_colB
SET a.columnToUpdate = [something]

匿名用户

实现相同结果的另一种方法是根本不使用JOIN关键字。

UPDATE TABLE_A, TABLE_B
SET TABLE_A.column_c = TABLE_B.column_c + 1
WHERE TABLE_A.join_col = TABLE_B.join_col

匿名用户

下面是更新查询,其中包括JOINWHERE。同样,我们可以使用多个join/where子句:

UPDATE opportunities_cstm oc JOIN opportunities o ON oc.id_c = o.id
 SET oc.forecast_stage_c = 'APX'
 WHERE o.deleted = 0
   AND o.sales_stage IN('ABC','PQR','XYZ')