请教一个sql语句

wwhile 2005-03-21 09:50:57
两个表:
表A:
id
name
表B:
name
note
表A的数据:
1 aa
2 bb
3 cc
表B的数据:
aa 22
aa 33
bb 22
bb 33
dd
ff
我要得到以下结果:
1 aa aa 22
2 bb bb 22
3 cc null null
...全文
88 点赞 收藏 6
写回复
6 条回复
xluzhong 2005年03月24日
select id,
name,
note=(select top 1 note from tb where name=a.name order by name,note)
from ta a
回复 点赞
yunshiyu 2005年03月24日
upzjcxc(邹建)
回复 点赞
--或者:
select id,name,name,note=(select top 1 note from b where a.name=b.name)
from a
回复 点赞
--示例数据

create table ta(id int,name varchar(10))
insert ta select 1,'aa'
union all select 2,'bb'
union all select 3,'cc'

create table tb(name varchar(10),note int)
insert tb select 'aa',22
union all select 'aa',33
union all select 'bb',22
union all select 'bb',33
go

--查询
select *
from ta a
left join tb b on a.name=b.name
and note=(
select top 1 note from tb where name=b.name)
go

--删除测试
drop table ta,tb

/*--结果
id name name note
----------- ---------- ---------- -----------
1 aa aa 22
2 bb bb 22
3 cc NULL NULL

(所影响的行数为 3 行)
--*/
回复 点赞
pbsql 2005年03月21日
select id,name,
(select top 1 name from b where a.name=b.name),
(select top 1 note from b where a.name=b.name)
from a
回复 点赞
jinjazz 2005年03月21日
那你的aa 33 哪里去了
回复 点赞
发动态
发帖子
应用实例
创建于2007-09-28

1.1w+

社区成员

6.8w+

社区内容

MS-SQL Server 应用实例
社区公告
暂无公告