日期:2014-05-18  浏览次数:20499 次

求一个更新表的某字段到关联表的另一字段的sql
表 a 字段 a1,a2
表 b 字段 b1,a1,b2
关联关系为 a.a1=b.a1
a.a1是主键
现在要把a.a2都赋值成b.b2,求破。

------解决方案--------------------
update a set a2=b.a1 from b where a.a1=b.b2
------解决方案--------------------
SQL code


go
if OBJECT_ID('a')is not null
drop table  a
go
create table a(
id int,
num int
)
go
insert a
select 1,2 union all
select 2,2 union all
select 3,2 union all
select 4,2
go
if OBJECT_ID('b')is not null
drop table  b
go
create table b(
id int,
num int
)
go
insert b
select 1,1 union all
select 2,2 union all
select 3,3 union all
select 4,4

update a set num=b.num from b where a.id=b.id

select * from a

/*
id    num
1    1
2    2
3    3
4    4
*/

------解决方案--------------------
这样破?
update a set a2=b.b2 from b where a.a1=b.a1
也可以这样破
update a, b set a.a2=b.b2 where a.a1=b.a1
------解决方案--------------------
探讨
表 a 字段 a1,a2
表 b 字段 b1,a1,b2
关联关系为 a.a1=b.a1
a.a1是主键
现在要把a.a2都赋值成b.b2,求破。