あるテーブルの値を別のテーブルの値で更新したい場合、UPDATE文にJOIN句をつけて実行しますが、よく忘れてしまうので備忘録として記載します。
例えば、発注データに含まれる発注先名を取引先マスタの取引先名で更新したい場合、等に使用できます。
通常のUPDATE文の構文は、
と記述しますが、JOIN句はSET句の前に記載して、
UPDATE テーブル1 AS t1 INNER JOIN テーブル2 AS t2 ON t1.id = t2.id SET t1.カラム名1 = 値1, t1.カラム名2 = 値2, t1.カラム名3 = 値3, … WHERE 条件文;
と記述します。(エイリアスは必須ではないですが、記載した方が混乱しないと思います。)
先の発注データの発注先名を取引先マスタで更新する場合は、
UPDATE t_hachu AS hac INNER JOIN m_torihikisaki AS tor ON hac.hachusaki_cd = tor.torihikisaki_cd
SET hac.torihikisaki_nm = tor.torihikisaki_nm WHERE hac.hachusaki_cd = ‘90034’;
といった感じに記述します。