如何使用不同的列数将行从一个表复制到另一个表

时间:2013-09-09 19:58:33

标签: php mysql

我对MySQL语法有一个“不寻常”的问题。

我有两张桌子:

  

table1:commodityAttributes并且 7 列   idid_commodityparametervalueunitstypenotes

     

table2:trade_commodity并且 8 列   idid_tradeid_commodityparametervalueunitstypenotes

注意:两个表的主键都是'id',这是我不想复制的

我想要的是将所有列从table1复制到table2,但也为table2中的id_trade创建值。

请看一下table1和table2的列数不同,而table2上的id_trade不是auto_increment。

以下是实际结果和所需结果的示例:

table1: 
id,id_commodity,parameter,value,units,type,notes 
1, 1, 'Ash','10','%','min','ash for a commodity' 
2, 1, 'Ash 2','15','%','max','ash for a commodity' 

执行复制程序后,产生:

table2:
id,id_trade,id_commodity,parameter,value,units,type,notes 
1,NULL,1, 'Ash','10','%','min','ash for a commodity' 
2,NULL,1, 'Ash 2','15','%','max','ash for a commodity' 

我想要的是table2的结果:

id,id_trade,id_commodity,parameter,value,units,type,notes
1,10,1, 'Ash','10','%','min','ash for a commodity'
2,10,1, 'Ash 2','15','%','max','ash for a commodity'

id_trade的'10'来自php var。

我怎样才能做到这一点?或者还有其他棘手的问题吗? 顺便说一句,我正在使用PHP和MySQL来完成这项任务。

编辑: 我看到了这个“类似”的问题,但我发现他正在尝试使用命令而不是值 MYSQL: How to copy an entire row from one table to another in mysql with the second table having one extra column?

请帮助我,谢谢你。

1 个答案:

答案 0 :(得分:2)

这是否有效:

insert into table2 (id_commodity,parameter,value,units,type,notes)
select id_commodity,parameter,value,units,type,notes
from table1

更新:根据OP提供的其他信息,这应该是OP正在寻找的解决方案:

insert into table2 (id_trade, id_commodity,parameter,value,units,type,notes)
select '10', id_commodity,parameter,value,units,type,notes
from table1