
2つのテーブルがあります。
A:生徒のデータ
B:先生のデータ
AにはBのデータと紐付けしています。AとBそれぞれにユニークなキーが自動採番で振られます。
行いたい事は新しい生徒のデータが加わった際に、先生のデータが無ければ先生のデータも加え、生徒のデータも加えるということを行いたいと思います。
そこで、AとBを組み合わせたビューを作り、そのビューにINSERTをするとエラーが発生します。
そこで、考えた方法は
1. BのデータをSELECTで先生のデータを探す。(あればキーを取得後、3へ)
2. 無ければデータ追加し、自動採番で振られるキーを再度SELECTで取得。
3. 2で得られたキーを使って生徒のデータと共にAにINSERT文を行う。
です。なんとかできますが、すっきりしません。もっと効率的でスマートな方法がないのでしょうか?
ご教授お願いします。
No.1ベストアンサー
- 回答日時:
二つのテーブルを同時にインサートする事は
不可能な為、やはり2回のインサート文が必要ですね
(1)Bのテーブルへのインサートを行いその時にLEFT JOINで
Bのテーブルを紐付け、IDがNULL の場合をインサートの
条件とすれば、1と2の作業が行えます。
(2)(1)同様にBのテーブルをJOINしインサートを行えば(1)の処理で
データが存在する為、データは反映されると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
left joinなどで結合対象のレコ...
-
ビューのソートについて
-
このISAMでは、リンクテーブル・・
-
Access VBAからエクセルに出力...
-
仕事のミス:本番データの削除→...
-
Accessでデータシートに同じデ...
-
マテリアライズドビューとスナ...
-
Oracleで上書きImportはできま...
-
データベースのテーブル設計に...
-
降順で並び替えて昇順で受け取...
-
SQL 複数テーブルのupdate
-
【エクセル】データテーブルの...
-
sqlplusで表示が変なので、出力...
-
「テーブルに座って……」という...
-
男性と2人で飲食店に行きテーブ...
-
リレーションシップが出来ません。
-
ワークテーブルなのに自動で削...
-
AccessのSQL 部分一致したデー...
-
条件付DELEATE文について
-
エクセルで都道府県、市区町村...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
Oracleで上書きImportはできま...
-
ビューのソートについて
-
このISAMでは、リンクテーブル・・
-
テーブルで一番古いレコードだ...
-
アクセス レコードセットを更...
-
Accessのテーブルデータを一気...
-
SQLです教えてくださいお願いし...
-
accessでレコード更新直後の反...
-
結合テーブルでINSERTする方法...
-
ODBC接続で新しいレコードを追...
-
マテリアライズドビューとスナ...
-
ORA-01401が表示され、データが...
-
Accessでの稼働日数計算の方法
-
処理の途中で停止させ、再開さ...
-
「クリップボードにコピーされ...
-
SQL文の結合(一対多)がわから...
-
構文エラー : 演算子がありませ...
-
Accessのインポートについて(上...
-
テーブル作成について
おすすめ情報