🥼
[SQL]INSERT SELECT とは(備忘録)
1.INSERT SELECT とは
「テーブル1から取得した結果を、テーブル2に登録する」というクエリです。
INSERT SELECT の書き方
INSERT INTO テーブル2 (
列1,
列2,
...
)
SELECT
列1,
列2,
...
FROM テーブル1
WHERE 条件
;
重要:
データを取得するテーブルとデータを登録するテーブルで、列の数とデータ型が一致していることを確認してクエリを作成してください。
列の順序も重要です。
2.サンプルプログラム
Sample.sql
CREATE TABLE employee (
id INT AUTO_INCREMENT NOT NULL,
name varchar(5) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE sales_department (
id INT AUTO_INCREMENT NOT NULL,
employee_id INT NOT NULL,
name varchar(5) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO employee (
name
)
VALUES ('大谷'),('山田'),('鈴木'),('山本'),('田中'),('佐藤');
-- employeeテーブルから抽出したレコードを、sales_departmentテーブルに登録
INSERT INTO sales_department (
employee_id,
name
)
SELECT *
FROM employee
WHERE id IN (1, 3, 5)
;
SELECT * FROM sales_department;
実行結果
id | employee_id | name |
---|---|---|
1 | 1 | 大谷 |
2 | 3 | 鈴木 |
3 | 5 | 田中 |
3.その他
・実行環境
Discussion