MySQL复制列来自不同的表,插入表的顶部

时间:2013-02-04 21:27:54

标签: mysql sql insert

我正在尝试将几个表合并在一起以合并数据,但是当我尝试将列从一个表插入到另一个表时,我正在使用的查询在最后一个当前存在的记录之后插入记录表。有很多关于重复列的问题,但它们似乎都是从空表开始的。

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   |
+--------+--------+------------+

1 个答案:

答案 0 :(得分:3)

如评论中所述,您需要UPDATE语句 INSERT语句:

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

可以在此处看到经过测试的示例:http://sqlfiddle.com/#!2/77724/1