我正在尝试将几个表合并在一起以合并数据,但是当我尝试将列从一个表插入到另一个表时,我正在使用的查询在最后一个当前存在的记录之后插入记录表。有很多关于重复列的问题,但它们似乎都是从空表开始的。
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 :(得分:3)
如评论中所述,您需要UPDATE语句不 INSERT语句:
UPDATE newTable
JOIN oldTable
ON newTable.id = oldTable.id
SET newcolumn = oldcolumn;
可以在此处看到经过测试的示例:http://sqlfiddle.com/#!2/77724/1