首页 新闻 会员 周边 捐助

sql 一对多关系随机查一条的问题

0
悬赏园豆:10 [已解决问题] 解决于 2012-01-07 11:14

有A,B两张表,A表是打分员信息,B表是打分员打分详细,现在要求查询打分员打分情况,每个打分员随机抽查一名学生.A对应B是一对多的关系.现在A表连B表查询,但是只要求B中表一条记录连接就行了,不需要全部,用SQL能实现吗?怎么实现?

Seven_boy的主页 Seven_boy | 初学一级 | 园豆:50
提问于:2012-01-07 09:34
< >
分享
最佳答案
1
select * from 
A inner join
(select row_Number() over(PARTITION BY 打分员 order by newid()) as index1,B.* from B) as b on a.打分员 = b.打分员 and index1 = 1

sql2005的你试一试

收获园豆:10
小小刀 | 小虾三级 |园豆:1991 | 2012-01-07 10:39
select * from (
select *,(select top 1 BID from B where 打分员 = A.打分员 order by newid()) as BID from A ) a inner join B on A.BID = B.BID

sql2000的

小小刀 | 园豆:1991 (小虾三级) | 2012-01-07 10:45

解决了,没有随机了,默认取了第一条,通过

select row_Number() over(PARTITION BY 打分员  order by newid()) as index1,B.* from B 给相同打分员的记录生成了index值,然后默认取了第一条,谢谢啦,学到东西啦!!!
Seven_boy | 园豆:50 (初学一级) | 2012-01-07 11:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册