実現したいこと
Aテーブルの一部のレコードが新しく更新されているBテーブルがあるとします。
Bテーブルの内容をAテーブルに反映させるにはどうしたらよいでしょうか。
具体例
tomさんとaaronさんだけを、update_memberの内容で更新したいです。
Aテーブル「member」 カラム id, name, salary
1 | tom | 20 2 | john | 30 3 | aaron | 200
Bテーブル「update_member」 カラム id, name, salary
1 | tom | 18 3 | aaron | 300
SQL
idが同じものだけBの内容をAに反映したいので、以下のように書きました。
sql
1update member a 2set (id, name, salary) = 3 ( 4 select 5 id 6 ,name 7 ,salary 8 from 9 update_member b 10 where 11 a.id = b.id 12 ) 13;
結果
結果は以下のようになりました。
1 | tom | 18 | | 3 | aaron | 300
なって欲しかったのは↓です。
1 | tom | 18 2 | john | 30 3 | aaron | 300
よろしくお願いします。
補足情報
- 上はpostgresで実行しました。
- 業務ではOracleですが、MERGEは使わない実装方法が知りたいです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/03 09:06