mysql 如何把查询到的结果插入到 另一个表中

mysql 如何把查询到的结果插入到 另一个表中

创建表

CREATE TABLE tests (
id int(11) NOT NULL AUTO_INCREMENT COMMENT ‘主键’,
name varchar(128) DEFAULT NULL COMMENT ‘姓名’,
age int(11) DEFAULT NULL COMMENT ‘年龄’,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

表 如下
mysql 如何把查询到的结果插入到 另一个表中

第一种:如果只希望导入指定字段,可以用这种方法:

INSERT INTO 目标表 (字段1, 字段2, …) SELECT 字段1, 字段2, … FROM 来源表 ;

请注意以上两表的字段必须一致,否则会出现数据转换错误。

如图
mysql 如何把查询到的结果插入到 另一个表中

查询一下 正确:
mysql 如何把查询到的结果插入到 另一个表中

第二种 其实就是导入全部字段

如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法:

INSERT INTO 目标表 SELECT * FROM 来源表 ;

例如,要将 tests 表插入到 newTests 表中,则可以通过如下SQL语句实现:

INSERT INTO tests SELECT * FROM newTests ;

第三种 如果只希望导入指定字段,指定条数

代码如下,其实就是 第一种的升级版

INSERT INTO 目标表 ( NAME, age ) SELECT NAME, age FROM 来源表 LIMIT 0,2;

案例: INSERT INTO tests ( NAME, age ) SELECT NAME, age FROM tests LIMIT 0,2;
mysql 如何把查询到的结果插入到 另一个表中

查询如下:
mysql 如何把查询到的结果插入到 另一个表中