簡體   English   中英

MySQL復制列來自不同的表,插入表的頂部

[英]MySQL copy column from different tables, insert at top of table

我正在嘗試將幾個表合並在一起以合並數據,但是當我嘗試將列從一個表插入到另一個表時,我正在使用的查詢在表中的最后一個當前存在的記錄之后插入記錄。 有很多關於重復列的問題,但它們似乎都是從一個空表開始。

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

如評論中所述,您需要UPDATE語句而不是 INSERT語句:

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

這里可以看到一個經過測試的例子: http//sqlfiddle.com/#!2/77724/1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM