チョコミントアイス

Oracle8iデータベースのSQL文で困っています。
以下のような2つの表があります。
※表の構成は似ていますが、同じではありません。

[表A]
 列1 ・・・ 主キー
 列2 ・・・ 主キー
 列3
 列4

[表B]
 列1 ・・・ 主キー
 列2 ・・・ 主キー
 列3
 列4

表Aと表Bの主キーが一致するデータについて、
表Aを表Bの値でUPDATEしたいのですが、
どのように記述すればよいでしょうか?

よろしくお願いします。

A 回答 (3件)

こんにちわ。



こんな感じでどうでしょう?

update 表A set (列3,列4) = (SELECT 表B.列3,表B.列4 FROM 表B
WHERE 表A.列1 = 表B.列1 AND 表A.列2 = 表B.列2);

ユーザ登録 (無料) が必要ですが、OTN Japan で
PDF 形式のマニュアルを公開していますので、
Download しておくと便利ですょ。

参考URL:http://otn.oracle.co.jp/
    • good
    • 0
この回答へのお礼

できました、ありがとうございました!
OTN Japan の情報もありがとうございました。
参考にさせていただきます。

お礼日時:2003/12/09 00:41

Oracle8iはJoinを使えません。


副問い合わせでしかできません。

update 表A set (列3,列4) = (表B.列3,表B.列4)
where (列1, 列2) in
(select 表B.列1, 表B.列2 from 表B
where 表A.列1 = 表B.列1
and 表A.列2 = 表B.列2)

こんなかな?
    • good
    • 0
この回答へのお礼

ありがとうございます。
でも、「ORA-01767: UPDATE ... SET式は副問合せである必要があります」というエラーになってしまいます。

お礼日時:2003/12/08 23:36

たぶん、こんな感じでできるのではないでしょうか。



UPDATE A JOIN B
ON A.列1 = B.列1 AND A.列2 = B.列2
SET A.列3 = B.列3,
A.列4 = B.列4;
    • good
    • 0
この回答へのお礼

ありがとうございます。
でも、「JOIN」でエラーになってしまいます。。。

お礼日時:2003/12/08 22:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報