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で質問しましょう!
似たような質問が見つかりました
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- その他(プログラミング・Web制作) 大学のゼミのレポートがムカつきます。 R言語というデータ分析に特化したプログラム言語を用いた授業の課 1 2023/06/29 00:50
- Excel(エクセル) Excel同士のデータの突合 3 2023/08/07 16:34
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Excel(エクセル) Excelでデータを抽出するに良い方法 9 2023/02/06 12:42
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- MySQL mysqlで INSERT と SELECTの用途は 1 2022/04/01 00:45
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Visual Basic(VBA) エクセルVBA 3 2022/06/23 20:00
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
INSERT文でフィールドの1つだけを他のテーブルから取ってきた値を入れたい
その他(データベース)
-
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
select insertで複数テーブルから値を取得したい
Oracle
-
-
4
JSPでリンクを利用してパラメータを次画面に渡す方法について。
Java
-
5
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
6
フォーム上で押されたボタンによってサーブレットの処理を変えたい
Java
-
7
【ACCESS】フォーム名/コントロール名を文字列型変数で指定するには
Access(アクセス)
-
8
型 varchar から型 numeric への変換エラー。
その他(データベース)
-
9
SQL、2つのテーブルで条件一致したものだけdeleteする方法は?
Oracle
-
10
テーブルの最後(最新)のレコードを抽出したい
MySQL
-
11
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
12
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
-
13
JSPからJSPへ情報を渡せる?
Java
-
14
javaでDBから取得したデータのJSP表示
Java
-
15
passwordが入れられません・・・・
PostgreSQL
-
16
JSP内でString型からint型に変換する方法(SAStruts使用)
Java
-
17
DataGridViewに複数テーブルのデータをセットしたい
Visual Basic(VBA)
-
18
SQLで、Join句で結合したテーブルにデータが無い場合について
SQL Server
-
19
実行時エラー 3265「要求された名前、または序数
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Sqliteリレーションについて2
-
htmlコードで書かれた表にphpで...
-
テーブルで一番古いレコードだ...
-
大量データの集計を早くするには?
-
Accessでデータシートに同じデ...
-
Accessのテーブルデータを一気...
-
クロス集計されたデータを元に...
-
「テーブルに座って……」という...
-
Excel テーブル内の空白行の削除
-
特定物と不代替物の違い
-
vers か a か(フランス語)
-
面接のときテーブルが正面に。...
-
アクセスのリンクテーブル一覧...
-
SQLです。こんな感じですか?あ...
-
SQLです教えてください。
-
バッチファイルを使ったテーブ...
-
飲み会で、座敷orテーブルどち...
-
教えてください。 テーブル1に ...
-
SQliteの日付検索について
-
The guest insisted ___changin...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
Accessのテーブルデータを一気...
-
テーブルで一番古いレコードだ...
-
このISAMでは、リンクテーブル・・
-
Oracleで上書きImportはできま...
-
アクセス レコードセットを更...
-
構文エラー : 演算子がありませ...
-
処理の途中で停止させ、再開さ...
-
ビューのソートについて
-
accessでレコード更新直後の反...
-
結合テーブルでINSERTする方法...
-
同一テーブルのデータを参照し...
-
ACCESSで容量が50MBになった...
-
マテリアライズドビューとスナ...
-
Accessのインポートについて(上...
-
MS Accessを共有した際にファイ...
-
「クリップボードにコピーされ...
-
重複クエリを使ったデータ削除
-
ERROR1062:Duplicate entry.......
-
access 特定のレコード数までエ...
おすすめ情報