ホームページ >データベース >mysql チュートリアル >ターゲットテーブルが最初でない場合に MySQL で結合テーブルを更新する方法?
テーブル順序を逆にして 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 サイトの他の関連記事を参照してください。