从另一个更新一个mysql表,其中第三个表将旧ID与新ID

时间:2015-07-27 18:53:45

标签: mysql

我需要将旧表中的数据复制到新表中,但表之间的ID不同。存在第三个表,它将旧id与新id匹配。

我将使用什么查询来获取新的id并使用它从匹配表中获取旧的id,然后使用旧的id从旧表中获取数据并将其写入新表?

New table:

id | value
------------
1  | this
2  | content
3  | will
4  | be
5  | overwritten

Old table:

id | value
------------
6  | where
7  | when
8  | who
9  | how
10 | why

ID Matching table:

newid | oldid
------------
1     | 6
2     | 7
3     | 8
4     | 9
5     | 10

New table after update:

id | value
------------
1  | where
2  | when
3  | who
4  | how
5  | why

1 个答案:

答案 0 :(得分:0)

您可以使用带有JOIN的UPDATE:

UPDATE `new` n
INNER JOIN `bind` b ON
    b.newid = n.id
INNER JOIN `old` o ON
    b.oldid = o.id
SET n.value = o.value;