プロが教える店舗&オフィスのセキュリティ対策術

環境:oracle9i

select insertで、2つのテーブルから値を取得して、1つのテーブルにinsertすることは可能でしょうか?
たとえば、以下の場合、どのようなSQL文を書けばよいか、アドバイスいただけますでしょうか。
よろしくお願いします。

insertしたいテーブル:A
Aテーブルの項目:o,p,q,r,s,t

値を取得するテーブル:B,C
Bテーブルの項目:o,p,q,r
Cテーブルの項目:o,p,s,t

oとpが主キーになっていて、それらが一致するBとCのデータを
あわせて、Aにinsertしたいと思っています。

insert into A(o,p,q,r,s,t)
select
このあと、どのように書けばよいのかがわかりません。

A 回答 (2件)

insert into A(o,p,q,r,s,t)


select B.o,B.p,B.q,B.r,C.s,C.t
from B,C
where B.o=C.o and B.p=C.p;

って感じかと。普通に問合せ文を書くだけですよ。
問合せ文自体は、内部結合だろうが外部結合だろうが何でもOK。
    • good
    • 8
この回答へのお礼

insert into の後ろにつけるselect文は、通常のselect文と同じと考えてよいのですね。
大変参考になりました。ありがとうございました。

お礼日時:2009/11/03 18:00

趣味ですか、仕事ですか?仕事なら本を買えば一杯情報が載ってますよ。


insert into A(o,p,q,r,s,t)
のo,p,q,r,s,tはA,B,Cのどのテーブルの値を入れるのでしょうか?
それがわからないと書けませんけど。

この回答への補足

説明不足で大変失礼しました。
Aには、1件もレコードが入っておらず、BとCで主キーo,pが一致するものを合体させてAにinsertしたいと考えています。
項目o,pについては、テーブルBから取得。(主キーを一致させるのでCでもかまいません)
項目q,rについては、テーブルBから取得。
項目s,tについては、テーブルCから取得。
上記のように考えております。

補足日時:2009/11/03 13:01
    • good
    • 0

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

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

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