MySQLサブクエリを使ったINSERT文

July 7, 2008,
tags: insert mysql サブクエリ


このエントリーをはてなブックマークに追加

これは知らなかった。
というかMySQLってサブクエリが使えるのがバージョン4.1以降だったので昔覚えた時はサブクエリすら知らなかったwww

usrテーブル
+————-+————–+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+————-+————–+——+—–+———+——-+
| user_id | char(7) | NO | PRI | | |
| l_name | varchar(20) | YES | | NULL | |
| f_name | varchar(20) | YES | | NULL | |
| l_name_kana | varchar(100) | YES | | NULL | |
| f_name_kana | varchar(100) | YES | | NULL | |
| prefecture | varchar(15) | YES | | NULL | |
| city | varchar(20) | YES | | NULL | |
| o_address | varchar(100) | YES | | NULL | |
| tel | varchar(20) | YES | | NULL | |
| email | varchar(255) | YES | | NULL | |
+————-+————–+——+—–+———+——-+

employeeテーブル
+————-+————–+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+————-+————–+——+—–+———+——-+
| s_id | char(7) | NO | PRI | | |
| l_name | varchar(20) | YES | | NULL | |
| f_name | varchar(20) | YES | | NULL | |
| l_name_kana | varchar(100) | YES | | NULL | |
| f_name_kana | varchar(100) | YES | | NULL | |
| sex | smallint(6) | YES | | NULL | |
| class | varchar(20) | YES | | NULL | |
| depart_id | char(3) | YES | | NULL | |
| b_id | char(7) | YES | | NULL | |
| last_update | date | YES | | NULL | |
| retired | smallint(6) | YES | | NULL | |
+————-+————–+——+—–+———+——-+

VALUES句の変わりにSELECT文を書く

INSERT INTO usr(user_id,l_name,f_name,email) SELECT s_id, l_name, f_name, 'admin@wings.msn.to' FROM employee WHERE last_update >= '2005-01-01';

そうそう、サブクエリを使わない書き方に直す記事をみつけました。

comments powered by Disqus