他のテーブルのレコードの値をテーブルに挿入(INSERT)するSQL文を紹介します。
他のテーブルのレコードの値をを挿入する場合は下記の書式を利用します。
他のテーブルの内容を挿入するSQLの記述例です。
Table_Bのレコードを下記とします。
id | Xname | Xcategory | Xprice |
---|---|---|---|
230 | ぺんぎん | 鳥 | 56800 |
231 | あひる | 鳥 | 2800 |
232 | かるがも | 鳥 | 2400 |
Table_Aの構造を下記とします。
id | name | category | price |
---|---|---|---|
1 | くま | 哺乳類 | 8400000 |
2 | せみ | 昆虫 | 120 |
下記のSQLを実行すると、Table_Bの id=230 の項目がTable_Aに挿入されます。
INSERT INTO Table_A(name, category) SELECT Xname,Xcategory FROM Table_B WHERE id = 230
挿入後のTable_Aは下記となります。
id | name | category | price |
---|---|---|---|
1 | くま | 哺乳類 | 8400000 |
2 | せみ | 昆虫 | 120 |
3 | ぺんぎん | 鳥 | NULL |
固定値を挿入する場合は下記のSQLを利用します。
INSERT INTO Table_A(name, category, price)
SELECT Xname,Xcategory,'0' FROM Table_B WHERE id = 230
先の例Table_A, Table_Bで上記のSQLを実行すると実行後のTable_Aは下記になります。
id | name | category | price |
---|---|---|---|
1 | くま | 哺乳類 | 8400000 |
2 | せみ | 昆虫 | 120 |
3 | ぺんぎん | 鳥 | 0 |
参照元と挿入先の列名が同じ場合のSQL文の紹介です。
Table_Bのレコードを下記とします。
id | name | category | price |
---|---|---|---|
230 | ぺんぎん | 鳥 | 56800 |
231 | あひる | 鳥 | 2800 |
232 | かるがも | 鳥 | 2400 |
Table_Aの構造を下記とします。
id | name | category | price |
---|---|---|---|
1 | くま | 哺乳類 | 840000 |
2 | せみ | 昆虫 | 120 |
下記のSQLを実行すると、Table_Bの id=230 の項目がTable_Aに挿入されます。
INSERT INTO Table_SA(name, category) SELECT name,category FROM Table_SB WHERE id = 230
id | name | category | price |
---|---|---|---|
1 | くま | 哺乳類 | 8400000 |
2 | せみ | 昆虫 | 120 |
3 | ぺんぎん | 鳥 | NULL |