489

質問したところ、この回答が役に立ちました。

   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

このようなものが3つのテーブルに関係している場合、私はこれをやろうとしています。

    UPDATE tableC c JOIN tableB b JOIN tableA a

UPDATE私の質問は基本的に...ステートメントで3つのテーブル結合を行うことは可能ですか? そして、それの正しい構文は何ですか?

私は次のことをしますか?

 JOIN tableB, tableA
 JOIN tableB JOIN tableA
4

7 に答える 7

851

答えはイエスです。できます。

次のようにしてみてください。

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]
于 2013-03-04T19:28:20.073 に答える
46

同じ結果を得る別の方法は、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
于 2015-06-17T15:31:13.880 に答える
2

はい、更新ステートメントに対して 3 つのテーブル結合を行うことができます。次に例を示します。

UPDATE customer_table c

  JOIN
      employee_table e
      ON c.city_id = e.city_id
  JOIN
      anyother_ table a
      ON a.someID = e.someID

SET c.active = "Yes"

WHERE c.city = "New york";
于 2020-07-20T12:46:48.753 に答える