INSERTのサブクエリで列名を選択することは可能ですか?
たとえば、イベントを別のテーブル(table2)の列にマップするテーブル(table1)がある場合:
表1:
+------+--------+---------+
| id | events | columns |
+------+--------+---------+
| 1 | event1 | column1 |
| 2 | event2 | column2 |
| 3 | event3 | column3 |
| 4 | event4 | column1 |
| 5 | event5 | column2 |
| 6 | event6 | column3 |
+------+--------+---------+
表2:
+------+---------+---------+---------+
| id | column1 | column2 | column3 |
+------+---------+---------+---------+
| ... | ... | ... | ... |
+------+---------+---------+---------+
次のようなSQLステートメントはありますか?
INSERT INTO table2
(
id,
(SELECT columns /* the interesting subquery */
FROM table1
WHERE events='event1')
)
VALUES (1, 123);
その結果、次の値を持つtable2が挿入されます。
+------+---------+---------+---------+
| id | column1 | column2 | column3 |
+------+---------+---------+---------+
| 1 | 123 | NULL | NULL |
+------+---------+---------+---------+