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

初学sql的问题
表A有字段(编号,名称),表B有字段(编号,功能描述,分类,名称),表B中的名称为空,请问如何通过sql语句更新表B中的“名称”字段内容并满足A.编号=B.编号,A.名称=B.名称,如

表A
编号 名称
1 跑步机
2 篮球


表B
编号 功能描述 分类 名称
2 健身 球类  
1 健身 器材 

得出的结果为
表B
编号 功能描述 分类 名称
2 健身 球类 篮球  
1 健身 器材 跑步机
 请问这条sql语句如何写?

------解决方案--------------------
select b.*.a.名称 from b join a on a.编号=b.编号
------解决方案--------------------
select b.*.a.名称 from b join a on a.编号=b.编号
------解决方案--------------------
--A.名称=B.名称這條件去掉
SQL code
select b.*,a.名称 from B,A where b.编号=a.编号

------解决方案--------------------
SQL code

create table a
(
    id int,
    [name] varchar(30)
)
insert into a
select 1,'跑步机' union all
select 2,'足球'

create table b
(
    id int,
    dec varchar(200),
    [type] varchar(30),
    [name] varchar(30)
)
insert into b(id,dec,type)
select 2,'健身','球类'union all
select 1,'健身','器材'

select * from a
select * from b

select STUFF((select ','+name from a a_2 where a_2.id=a.id for xml path('')),1,1,'') as [name] from a group by id

update b set[name]=(select a.name from a where a.id=b.id)
from a where b.id=a.id

drop table a
drop table b