在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 |
+----+-------+-------+
注意:目标表和源表的列的数量和数据类型必须匹配,否则会导致插入失败。