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

使用另一个表(MySQL)中的值更新表新列,mysql,sql,copy,multiple-columns,Mysql,Sql,Copy,Multiple Columns,我有两张桌子表1和表2。 我正在做一些更改,我意识到不需要表2,但是这个表已经有很多数据,我需要将ID_B的值从表2传递到表1 结构如下: 表1 表2 所以我想要的是,当表1上的ID_table2等于表2上的ID_table2时,MySQL查询将ID_B值从表2传递到表1 例如,表1上ID_table1为1的行的ID_B=14 你能帮我吗? 提前感谢, Miguel。使用连接,您可以执行以下操作 update table1 t1 inner join table2 t2 on t2.ID_ta

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

结构如下:

表1 表2 所以我想要的是,当表1上的ID_table2等于表2上的ID_table2时,MySQL查询将ID_B值从表2传递到表1

例如,表1上ID_table1为1的行的ID_B=14

你能帮我吗? 提前感谢,


Miguel。

使用连接,您可以执行以下操作

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

您可以这样尝试:

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

谢谢,这很有效!小提琴也是一个很好的触摸,谢谢你的时间。祝你一切顺利。谢谢你的回答。我也试过这个,效果很好。使用“目标”和“源”也有助于理解解决方案。谢谢你的时间:)祝你一切顺利!这样一个简单的要求能不能用一种更令人困惑的方式表达呢?我尽了最大的努力解释情况,只是害怕遗漏一些重要的信息。也许这就是为什么它变得更加混乱。。。
update table1 t1
inner join 
table2 t2 on t2.ID_table2 = t1.ID_table2
set t1.ID_B = t2.ID_B
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