积极答复者
求教高手关于update语句

问题
-
a 表
a1(PK) a2 a3 a4
1 null null null
2 null null null
3 null null null
b表
b1 b2 b3 b4 b5(pk)
1 v c d A
2 d v d B
3 c d r C
3 c d w D
3 c d x E
现在想做的是把b表的数据更新到a表中,但问题是两个表的PK不同,因此我想实现的是把b表的数据按a表中已存在的行依pk更新来自b表的ORDER BY DESC TOP1 PK数据,要求UPDATE执行后效果如下 ,谢谢!
a 表
a1(PK) a2 a3 a4
1 v c d
2 d v d
3 c d x
- 已编辑 hzpemu 2012年4月25日 6:55
答案
全部回复
-
declare @a table ( a1 int, a2 varchar(10), a3 varchar(10), a4 varchar(10) ) declare @b table ( b1 int, b2 varchar(10), b3 varchar(10), b4 varchar(10), b5 varchar(10) ) insert into @a(a1) values (1),(2),(3) insert into @b values(1 ,'v' ,'c' ,'d' ,'A') insert into @b values(2 ,'d' ,'v' ,'d' ,'B') insert into @b values(3 ,'c' ,'d' ,'r' ,'C') insert into @b values(3 ,'c' ,'d' ,'w' ,'D') insert into @b values(3 ,'c' ,'d' ,'x' ,'E') select * from @a update @a set a.a2 = b.b2,a.a3 = b.b3,a.a4 = b.b4 from @a a inner join ( select * from @b where b5 in ( select MAX(b5) from @b group by b1) ) b on a1 = b1 select * from @a
以上說明若有錯誤請指教,謝謝。
http://www.dotblogs.com.tw/terrychuang/