ホームページ >データベース >mysql チュートリアル >ターゲットテーブルが最初でない場合に MySQL で結合テーブルを更新する方法?

ターゲットテーブルが最初でない場合に MySQL で結合テーブルを更新する方法?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-29 18:44:11234ブラウズ

How to Update a Joined Table in MySQL When the Target Table Isn't First?

テーブル順序を逆にして MySQL の結合テーブルを更新する

結合ステートメントに含まれるテーブルを更新するタスクは、目的のテーブルが先頭にありません。 SQL Server とは異なり、MySQL では複数テーブルの更新の構文が異なり、この問題に対処しています。

テーブル 'b' を更新することが目的である次の例を考えてみましょう:

UPDATE b
FROM tableA a
JOIN tableB b
   ON a.a_id = b.a_id
JOIN tableC c
   ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
    AND c.val > 10;

MySQL では、JOIN 句を含む UPDATE ステートメントの構文では、更新するテーブルを指定しません。代わりに、SET 句によって暗黙的に決定されます。

したがって、目的の更新を実現するには、次の改訂された構文を使用できます。

UPDATE tableA a
JOIN tableB b
   ON a.a_id = b.a_id
JOIN tableC c
   ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
    AND c.val > 10;

JOIN を使用した UPDATE に注意することが重要です。構文は標準 SQL 仕様の一部ではなく、MySQL と Microsoft SQL Server は両方とも独自のバリエーションを実装しています。

以上がターゲットテーブルが最初でない場合に MySQL で結合テーブルを更新する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。