1

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

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

1 回答 1

3

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

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

可以在这里看到一个经过测试的示例:http ://sqlfiddle.com/#!2/77724/1

于 2013-02-04T21:38:27.513 回答