1. 查询结果保存为临时表

我们可以先将查询结果保存为一个临时表,语法如下:

CREATE TEMPORARY TABLE temp_table 
SELECT * FROM original_table WHERE condition;

2. 根据临时表创建新表

接下来,我们可以根据上一步中创建的临时表,来创建我们需要的新表,语法如下:

CREATE TABLE new_table 
SELECT * FROM temp_table;

3. 删除临时表

最后,我们需要将临时表删除,避免占用过多的资源。语法如下:

DROP TEMPORARY TABLE IF EXISTS temp_table;

使用这种方法,可以快速方便地根据查询结果创建新表,极大地提高了数据处理的效率和准确性。




在mysql中可以把已经存在的表直接通过命令复制为另一个表

方法1:

create table mmm select * from bbb;

注意:这条命令要求mmm这个表在数据库中不存在

这条命令可以创建新表mmm并且bbb中的表结构以及数据和mmm完全一样mysql insert,也可以导出部分字段 create table mmm select 字段1,字段2 from bbb;

方法2:

insert into mmm select * bbb;

这条语句和上一条语句实现同样的功能,只是要求mmm表必须在数据库中存在


把查询结果直接插入表

INSERT INTO ... SELECT 

-- 创建tb_appcache
CREATE TABLE `tb_appcache` (
  `cacheKey` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'key,字符串',
  `cacheValue` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '值,字符串',
  `cacheDesc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '描述',
  UNIQUE KEY `index_cachekey` (`cacheKey`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8


INSERT INTO tb_appcache (`cacheKey`,`cacheValue`,`cacheDesc`)
SELECT "YingShouZhangKuanYuJing" AS `cacheKey`, SUM(tic_cost) AS `cacheValue`, "应收账款预警描述" AS `cacheDesc`
FROM t_income_cost
WHERE tic_settle_status = 6