質問: 結合テーブルでinsertする方法について 2つのテーブルがあります。 a:生徒のデータ b:先生のデータ aにはbのデータと紐付けしています。aとbそれぞれにユニークなキーが自動採番で振られます。 行いたい事は新しい生徒のデータが加わった際に、先生のデータが無ければ先生のデータも加え、生徒のデータも加えるということを行いたいと思います。 そこで、aとbを組み合わせたビューを作り、そのビューにinsertをするとエラーが発生します。 そこで、考えた方法は 1. bのデータをselectで先生のデータを探す。(あればキーを取得後、3へ) 2. 無ければデータ追加し、自動採番で振られるキーを再度selectで取得。 3. 2で得られたキーを使って生徒のデータと共にaにinsert文を行う。 です。なんとかできますが、すっきりしません。もっと効率的でスマートな方法がないのでしょうか? ご教授お願いします。
回答: 二つのテーブルを同時にインサートする事は 不可能な為、やはり2回のインサート文が必要ですね (1)bのテーブルへのインサートを行いその時にleft joinで bのテーブルを紐付け、idがnull の場合をインサートの 条件とすれば、1と2の作業が行えます。 (2)(1)同様にbのテーブルをjoinしインサートを行えば(1)の処理で データが存在する為、データは反映されると思います。