两种方式:
一、这是将表2的某些字段直接插入表1,所以表1事先是不存在的,在这个语句中被创建后赋予表2的value1,value2的字段;
select value1,value2
into table1
from table2;
二、这是将表2的三个值查询出来,然后插入表1;需要注意的是,表2的三个值和表1的三个值是一一对应的,所以表1事先存在,并且字段和表2对应;
insert into table1(value1,value2,value3)
select value4,value5,value6
from table2;
刚写了一个存储过程可以用来作为第二种方式的例子:
create procedure test(in pro_in int(32))
begin
delete from table1;
insert into table1(val1,val2,val3)
select concat(date_format(val4,'%Y'),'年'),val5,sum(val6)
from table2
group by concat(date_format(val4,'%Y'),'年');
end;
这里表1是创建的临时表,首先删除临时表数据,然后把表2的三个字段插入到表一中;值得注意的是,表2的三个字段可以进行函数操作后再插入到表1,第一种方式也可以这样操作,例如,
select count(val1),val2,sum(val3)
into table1
from table2;