在MySQL中,INSERT INTO SELECT語句用于將一張表中的數據插入到另一張表中。
語法如下:
INSERT INTO 目標表名 (列1, 列2, 列3, ...) SELECT 列1, 列2, 列3, ... FROM 源表名 WHERE 條件;
其中,目標表名是要插入數據的表,列1、列2、列3等指定了要插入的目標表的列。源表名是要從中選擇數據的表,列1、列2、列3等指定了要選擇的源表的列。WHERE子句是可選的,用于指定選擇數據的條件。
示例: 假設我們有兩張表:table1和table2,它們的結構如下:
table1:
+----+-------+-------+
| id | name | age |
+----+-------+-------+
| 1 | John | 25 |
| 2 | Alice | 30 |
+----+-------+-------+
table2:
+----+-------+-------+
| id | name | age |
+----+-------+-------+
| 3 | Bob | 35 |
+----+-------+-------+
如果要將table1中的數據插入到table2中,可以使用以下INSERT INTO SELECT語句:
INSERT INTO table2 (id, name, age)
SELECT id, name, age FROM table1;
執行上述語句后,table2的內容將變為:
+----+-------+-------+
| id | name | age |
+----+-------+-------+
| 3 | Bob | 35 |
| 1 | John | 25 |
| 2 | Alice | 30 |
+----+-------+-------+
注意:目標表和源表的列的數量和數據類型必須匹配,否則會導致插入失敗。