INSERT文の中でSELECT文による副問合せを行うことで,他のテーブルやビューから選択したレコードを追加することができます.
他のテーブルやビューから選択したレコードを追加するにはINSERT文を以下のような書き方で使用します.
INSERT INTO テーブル名A (列名A-1, 列名A-2, ...)
SELECT 列名B-1, 列名B-2, ...
FROM テーブル名B
[WHERE 条件式]
例として受給フラグが1の従業員を受給者マスタに追加します.
従業員
従業員コード | 従業員名 | 性別 | 年齢 | 受給フラグ |
---|---|---|---|---|
E0001 | チャーリー・ブラウン | 男性 | 19 | 1 |
E0002 | ルシール・ヴァン・ぺルト | 女性 | 20 | 0 |
E0003 | ライナス・ヴァン・ぺルト | 男性 | 21 | 1 |
受給者
受給者コード | 受給者名 |
---|---|
R0001 | シュローダー |
R0002 | ペパーミント・パティ |
R0003 | マーシー |
SQL
INSERT INTO 受給者 (受給者コード, 受給者名)
SELECT 従業員コード, 従業員名
FROM 従業員
WHERE 受給フラグ = 1
結果
受給者コード | 受給者名 |
---|---|
R0001 | シュローダー |
R0002 | ペパーミント・パティ |
R0003 | マーシー |
E0001 | チャーリー・ブラウン |
E0003 | ライナス・ヴァン・ぺルト |