OracleでテーブルB、Cを結合し取得できた項目で、テーブルAを更新したいのですがSQLがわかりません。
結合結果とテーブルAは1:1にはなりません。 件数が結合結果>テーブルAの時もあれば、その逆の場合もあります。
また、複数項目を更新したいです。実行して考えてみたいのですが、明朝客先ですぐに実行しなければならず(テスト環境はあるので明日そこで一旦確認後、すぐに本番環境で実行)、現在移動中→ホテル泊のため余裕がありません。
ネットで調べて下記を見つけたのですが、更新する項目に更新日時を追加したいのと、テーブルAとの紐付け条件やEXISTSの条件はテーブルBとCの項目と紐づけたいです。
また、テーブルAの更新条件に、テーブルB、Cにはないcolumn③に対する条件も追加したいです。
UPDATE [TABLE①] A
SET (COLUMN①, COLUMN②) = (
SELECT B.COLUMN, C.COLUMN FROM [TABLE②] B, [TABLE③] C
WHERE B.COLUMN = C.COLUMN AND B.COLUMN = A.COLUMN )
WHERE EXISTS (
SELECT 1 FROM [TABLE②] B2 WHERE B2.COLUMN = A.COLUMN
)
もろもろとわかりづらい説明&他力本願で心苦しいのですが、どなたか教えていただけないでしょうか?
あなたの回答
tips
プレビュー