使用另一个表(MySQL)中的值更新表新列

时间:2014-04-23 13:46:11

标签: mysql sql copy multiple-columns

我有两张桌子 table1 table2 我正在做一些更改,我意识到不需要 table2 ,但是这个表已经有很多数据了,我需要从传递 ID_B 的值table2 table1

这是结构:

表1

 ID_table1 |  ID_table2 | ID_B      
  1        |   1        |    
  2        |   3        |    
  3        |   1        |    
  4        |   2        |    

表2

 ID_table2 |    ID_B  
  1        |     14  
  2        |     26  
  3        |     26  

所以我想要的是当 ID_table2 table2 中的 ID_B 值传递给 table1 > table1 等于 table2 上的 ID_table2

例如, table1 ID_table1 为1的行将具有 ID_B = 14。

你能帮我解决这个问题吗? 提前谢谢,

米格尔。

2 个答案:

答案 0 :(得分:1)

使用JOIN,你可以这样做。

update table1 t1
inner join 
table2 t2 on t2.ID_table2 = t1.ID_table2
set t1.ID_B = t2.ID_B

<强> DEMO

答案 1 :(得分:0)

你可以这样试试:

UPDATE
  table1 AS target,
  (SELECT ID_table2, ID_B FROM table2) AS source
SET
  target.ID_B = source.ID_B
WHERE
  target.ID_TABLE2 = source.ID_table2