日期:2014-05-17  浏览次数:20407 次

sql的多表更新
问题简化出来就是这样:有两个表,第一个表内有两个字段code_id和code_name,分别有100个记录,code_id是主键,另外一个表内也是两个字段,分别为my_id和my_name,也有100条记录,my_id字段的内容跟第一个表的code_id字段的内容一样,但是第二个表没有内容,现在我想根据id值将第一个表中的name跟新到第二个表去。。不知道sql语句怎么写。。
A表:
code_id      code_name
1001           a
1002           b
1005           c
1003           d
...           ...
B表
my_id        my_name
1003
1001
1007
1005
...
就是讲d插入到B表的第一行,a插入到第二行,c插入到第四行以此类推。。求语句,求解释。。
SQL

------解决方案--------------------
update b set my_name=code_name from a where a.code_id=my_id
------解决方案--------------------
update B表 set my_name=A表.code_name
from A表
where B表.my_id=A表.code_id
------解决方案--------------------
update B表  set my_name = A表.code_name  
from B表  inner join A表
on B表.my_id = A表.code_id
------解决方案--------------------

update b
 set b.my_name=a.code_name
 from B表 b
 inner join A表 a on b.my_id=a.code_id

------解决方案--------------------

update b
 set b.my_name=a.code_name
 from B表 b
 inner join A表 a on b.my_id=a.code_id

------解决方案--------------------

update b set my_name=code_name
from a,b where a.code_id=b.code_id