2013-02-04 29 views
1

我试图合并几个表在一起来巩固数据,但是当我尝试从一个表插入一列到另一个,查询我使用在表中最后一个当前存在的记录之后插入记录。关于重复列的问题有很多,但它们似乎都是以空表开始的。MySQL从不同的表中复制列,插入在表顶部

INSERT INTO newTable(newColumn) SELECT oldColumn FROM oldTable 

如何修改此查询以在表的开头插入行而不是结束?

发生了什么(左)与的

视觉表现什么,我希望发生的事情(右):

+--------+--------+------------+ +--------+--------+------------+ 
| ID  | Column | newColumn | | ID  | Column | newColumn | 
+--------+--------+------------+ +--------+--------+------------+ 
| 1  | 12345 |   | | 1  | 12345 | 12345 | 
| 2  | 12345 |   | | 2  | 12345 | 12345 | 
| 3  | 12345 |   | | 3  | 12345 | 12345 | 
| 4  |  | 12345 | +--------+--------+------------+ 
| 5  |  | 12345 | 
| 6  |  | 12345 | 
+--------+--------+------------+ 
+0

什么是在列1和2中的数据之间的关系? –

+0

身份证是相同的,如果这将有所帮助。它是从谷歌分析导出的数据;现在,每个度量标准都有自己的表格,我试图将它们合为一体。 –

+2

是的,这可以帮助很多人。您应该更新而不是插入,并将其与联接结合使用。 –

回答

3

正如在评论中提到,你需要一个UPDATE语句 INSERT语句:

UPDATE newTable 
    JOIN oldTable 
    ON newTable.id = oldTable.id 
SET newcolumn = oldcolumn; 

受试例如这里可以看出:http://sqlfiddle.com/#!2/77724/1

+0

这样做。谢谢! (需要关闭安全更新模式才能做到这一点。) –

+0

非常欢迎您。 – bernie

+0

@bernie。奥克,你先在哪里。我正忙着做小提琴。 –