首页 > mysql > 将一个表的字段更新至另一个表

将一个表的字段更新至另一个表

作者:bin

工作中难免会遇到,要将一个表中的字段更新至另一个表中的相同字段里
这里提供一个简单的sql语句供大家使用

表a

 id  fieldA fieldB
 1   2      null
 11  22     null
 111 111    111

表b

 id fieldA fieldB
 1   2      3
 11  22     33

update a set a.fieldB = (select fieldB from b where a.id = b.id) where a.id in 
( 
   select tmp.id from ( select a.id from a,b where a.id = b.id  ) tmp 
);

更新结果
表b

 id  b    c
 1   2    3
 11  22   33
 111 111  111

注意这里,使用tmp临时表的目的是因为mysql不允许:
先select出同一表中的某些值,再update这个表(在同一语句中)

否则出现的错误会为:

You can't specify target table 'stock_new' for update in FROM clause

您必须 [ 登录 ] 才能发表留言!