はじめに バッチ処理等を作成していると、あるテーブルのキーに合致する別テーブルの値を更新したいことがあるかと思います。このような場合、手続き型のプログラムでは以下の様な処理になるかと思います。 (あくまで一例です。他にも様々な記述方法があるかと思います。また文法的に正しいのかも検証しておりません。) ids = Src.ids # あるテーブルのキーを取得して格納する ids.each do |id| # キーをループする data = Dest.where(["id = ?", id]) # 更新対象を別テーブルより一件ずつ抽出する if data data.point = 200 data.update # 別テーブルの値を一件ずつ更新する end end このように、あるテーブルのキーに合致する別テーブルのデータを更新する処理をSQLではどうするのかについて書いていきます。 SQLの
![[SQL]あるテーブルのキーに合致する別テーブルの値を更新する | DevelopersIO](https://cdn-ak-scissors.b.st-hatena.com/image/square/d9d7a9e19a3c5979fc0b83efa7beeec666f705bb/height=288;version=1;width=512/https%3A%2F%2Fdevio2023-media.developers.io%2Fwp-content%2Fuploads%2F2015%2F07%2Fsql.png)