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