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

怎么把一个表的值用update更新到另一个表中
现在有两个表t1和t2分别是
a    b    c
------------------
11   21
12   22
13   23

a    c
------------------
11   31
12   32
13   33

想把t2表的c字段用update语句更新到t1中,想得到的结果

a    b    c
------------------
11   21   31
12   22   32
13   23   33

只想用update,不想再定义一个表变量然后insert,这样会浪费空间

------解决方案--------------------
UPDATE t1
SET t1.c=t2.c
FROM t1 INNER JOIN t2 ON t1.a=t2.a
------解决方案--------------------
create table #t1(a varchar(5), b varchar(5),c varchar(5)) 
insert into #t1 select '11', '21',null union all select '12', '22',null union all select '13','23',null 

create table #t2(a varchar(5), c varchar(5))
 insert into #t2 select '11', '31' 
 union all select '12', '32'
 union all select '13', '33'

 
 select * from #t1
 select * from #t2
 
 UPDATE #t1
 SET #t1.c=#t2.c
 FROM #t1 INNER JOIN #t2 ON #t1.a=#t2.a 
 
 select * from #t1
 select * from #t2
   
  drop table #t1
  drop table #t2