teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

修正

2017/03/10 09:33

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- insert selectで複数件をループて登録
1
+ insert~selectのselect取得した結果が複数件でもinsertたい
body CHANGED
File without changes

2

修正

2017/03/10 09:33

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -17,6 +17,20 @@
17
17
  FROM res_table
18
18
  WHER resjouken = "hoge"
19
19
  ```
20
+
21
+ res_tableは↓のような形です
22
+ |resjouken|res|
23
+ |:--|:--:|
24
+ |hoge|123|
25
+ |hoge|456|
26
+ |hoge|789|
27
+ |hoge|012|
28
+ |geho|012|
29
+ |geho|012|
30
+
31
+
32
+
33
+
20
34
  上記のような形でresから取得してきたものを、
21
35
  どんどんinsert_tableに追加していきたいです。
22
36
  可能かどうか、ご教授お願いいたします。

1

修正しました

2017/03/10 09:14

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,16 +1,22 @@
1
+ excelのファイルで下記のように入力されている内容から、
2
+ INSERT文を生成できるようにしたいです。
3
+ |id||res取得の条件|
4
+ |:--:|:--:|
5
+ |123|hoge|
6
+
1
7
  ```SQL
2
- INSERT INTO table (id,no,res)
8
+ INSERT INTO insert_table (id,no,res)
3
- SELECT id,no,res
9
+ SELECT
10
+ // excelのidをそのまま設定
11
+ id,
12
+ // excelのidを検索条件に設定
13
+ (select max(no)+1 from insert_table where id = 'id'),
14
+ // resの条件で取得できたモノを設定
15
+ // ※この場合に複数件取れる場合がある
16
+ res
4
- FROM restable
17
+ FROM res_table
18
+ WHER resjouken = "hoge"
5
19
  ```
6
-
7
- 上記のようにinto~selectをしたい場合に
20
+ 上記のような形でresから取得てきものを
8
- idとnoは主キーであり、
9
- 略していますがnoは登録対象テーブルから
10
- idで取得できる検索結果のmaxの値+1を設定しています。
11
-
12
- その場合に、resが複数件とれてその分ループして
13
- insertしていくという処理がやりたいです
21
+ どんどんinsert_tableに追加していたいです。
14
- そもそも可能なのでしょうか?
15
-
16
- ご教授お願いいたします。
22
+ 可能かどうか、ご教授お願いいたします。