• 締切済み

1つのSQL文で検索し、その結果をINSERTしたい

いつもお世話になっております。 今回、AテーブルとBテーブルを調べてデータに差分があれば、その差分データを元にCテーブルからデータを取ってきて、取ってきたデータをDテーブルに追加する、というSQLを1文で書くようにと言われました。 Cテーブルからデータを取ってくるところまではできたのですが、それをDテーブルにINSERTするにはどうしたら良いのかがわかりません。 Cテーブルから取得するデータは5件です。 DテーブルにはCテーブルから取得したデータ以外にも3件入力する項目があります。 現状を簡単に表現すると INSERT INTO Dテーブル(ア,イ,ウ,エ,オ,カ,キ,ク) VALUES((SELECT あ,い,う,え,お FROM Cテーブル),か,き,く); のようにやってみたのですが、うまくいきません。 こういう場合の記述方法をご存知の方がいらっしゃいましたら、教えてください。 よろしくお願いいたします。

みんなの回答

回答No.1

insert into D select ~ from C where ~ in (select ~ from (select * from A minus select * from B) ; みたいな感じになるんじゃないですかね。 ・AとBの差分の求め方が判らない。 ・AB差分とCの関係式が判らない。 ということで、イメージでしか表現できませんが、 その辺を具体的に埋めれば良いかと。

shunre
質問者

お礼

自己解決しました。 INSERT INTO Dテーブル(ア,イ,ウ,エ,オ,カ,キ,ク) ((SELECT あ,い,う,え,お FROM Cテーブル),か,き,く); と書けばよかったようです。 ありがとうございました。

関連するQ&A