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

二张表的更新问题
create   table   a1
(
a1#   int,
aname   varchar(10),
asex   char(2),
aage   int

)

create   table   b1
(
b1#   int,
bname   varchar(10),
bsex   char(2),
bage   int

)

insert   a1   values(001, 'aa ', '男 ',18)
insert   a1   values(002, 'bb ', '男 ',19)
insert   a1   values(003, 'cc ', '女 ',17)

insert   b1   values(002, 'bb ', '男 ',20)
insert   b1   values(003, 'cc ', '女 ',18)
insert   b1   values(004, 'dd ', '女 ',19)

怎么将a1表中与b1表中相同记录中年龄换用b1表中的年龄更新掉,语句该怎么写啊?

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

update a1 set aage=b1.bage
from a1 inner join b1 on a1.aname=b1.bname
------解决方案--------------------
create table a1
(
a1# int,
aname varchar(10),
asex char(2),
aage int

)

create table b1
(
b1# int,
bname varchar(10),
bsex char(2),
bage int

)

insert a1 values(001, 'aa ', '男 ',18)
insert a1 values(002, 'bb ', '男 ',19)
insert a1 values(003, 'cc ', '女 ',17)

insert b1 values(002, 'bb ', '男 ',20)
insert b1 values(003, 'cc ', '女 ',18)
insert b1 values(004, 'dd ', '女 ',19)


--怎么将a1表中与b1表中相同记录中年龄换用b1表中的年龄更新掉,语句该怎么写啊?


update a1
set a1.aage=b1.bage
from a1,b1
where a1.a1#=b1.b1# and a1.aname=b1.bname and a1.asex=b1.bsex

drop table a1
drop table b1