こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

すっきりとしたSQL文にしたいのですが

Oracle9iにてテーブルのデータを更新しようと思っています。

目的としてはAAAのカラムa1とBBBのカラムb1が同一なレコードである場合、
AAAのa2にBBBのb2を更新したいのですが、

<条件>
AAA:テーブル1
BBB:テーブル2
a1:CHAR
b1:CHAR
a2:VERCHAR
b2:VERCHAR
すべて必須で桁数は10

UPDATE AAA
SET AAA.a2 = (
SELECT BBB.b2
FROM BBB
WHERE AAA.a1 = BBB.b1)
WHERE AAA.a1 = (
SELECT BBB.b1
FROM BBB
WHERE AAA.a1 = BBB.b1)
;

いまはこんな無駄の多そうなSQLしか分かりません。
この他にも条件が2つ追加される予定なので
もっとすっきり更新できる方法を教えていただけませんでしょうか?
よろしくお願いします。

投稿日時 - 2002-11-13 16:03:51

QNo.403727

困ってます

質問者が選んだベストアンサー

ま、これでいいんじゃないでしょうか?
ちょっと気になる点があるので、修正してみました。

UPDATE AAA
SET AAA.a2 = (
SELECT BBB.b2
FROM AAA,BBB
WHERE AAA.a1 = BBB.b1)
WHERE AAA.a1 = (
SELECT BBB.b1
FROM AAA,BBB
WHERE AAA.a1 = BBB.b1)
;

投稿日時 - 2002-11-13 16:08:44

お礼

解答をありがとうございました。

これで行くぞ!っていう気持ちの整理が出来ました。
修正も追加してくださったので、足りない分に気づきました。
どうもありがとうございました。

投稿日時 - 2002-11-13 17:21:11

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問