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

解決済みの質問

結合テーブルでINSERTする方法について

2つのテーブルがあります。
A:生徒のデータ
B:先生のデータ

AにはBのデータと紐付けしています。AとBそれぞれにユニークなキーが自動採番で振られます。

行いたい事は新しい生徒のデータが加わった際に、先生のデータが無ければ先生のデータも加え、生徒のデータも加えるということを行いたいと思います。

そこで、AとBを組み合わせたビューを作り、そのビューにINSERTをするとエラーが発生します。

そこで、考えた方法は
1. BのデータをSELECTで先生のデータを探す。(あればキーを取得後、3へ)
2. 無ければデータ追加し、自動採番で振られるキーを再度SELECTで取得。
3. 2で得られたキーを使って生徒のデータと共にAにINSERT文を行う。

です。なんとかできますが、すっきりしません。もっと効率的でスマートな方法がないのでしょうか?

ご教授お願いします。

投稿日時 - 2006-08-18 01:25:22

QNo.2346069

すぐに回答ほしいです

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

二つのテーブルを同時にインサートする事は
不可能な為、やはり2回のインサート文が必要ですね

(1)Bのテーブルへのインサートを行いその時にLEFT JOINで
 Bのテーブルを紐付け、IDがNULL の場合をインサートの
 条件とすれば、1と2の作業が行えます。

(2)(1)同様にBのテーブルをJOINしインサートを行えば(1)の処理で
データが存在する為、データは反映されると思います。

投稿日時 - 2006-08-21 13:01:13

お礼

やはり2回インサートを行うという結果は残念ですが、大変参考になりました。ありがとうございます。

投稿日時 - 2006-08-23 00:25:50

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

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

回答(1)

あなたにオススメの質問