关于select和insert,将一个表中的部分数据复制到另一个表中

来源:互联网 发布:软件项目外包网站 编辑:程序博客网 时间:2024/06/04 18:50

两种方式:

一、这是将表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;


阅读全文
0 0
原创粉丝点击