首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个sql查询,请高手指教,该怎么处理

2012-01-20 
一个sql查询,请高手指教张三语文81张三数学75李四语文76李四数学90王五语文81王五数学100我想显示语文和数

一个sql查询,请高手指教
张三         语文81
张三         数学75
李四         语文76
李四         数学90
王五         语文81
王五         数学100

我想显示语文和数学都大于80分的人的名字
因为本人SQL是弱项,总感觉自己写的这个感觉效率好低,用的笨方法
请问高手有没有别的方法

select   distinct   mingzi   from   students
where  
students.mingzi   in
(
select   mingzi   from   students   s1  
where   fenshu   > =   80   and   kecheng   =   '语文 '
)
and
students.mingzi   in
(
select   mingzi   from   students   s2
where   fenshu   > =   80   and   kecheng   =   '数学 '
)


[解决办法]
select mingzhi from (select 姓名,mingzi from students where 分数> 80) a group by 姓名 having count(*)> 1
[解决办法]

select mingzi from students s1
where fenshu > = 80 and (kecheng = '语文 ' or kecheng = '数学 ')

这样不行嘛?
[解决办法]
select a.mingzi from
( select mingzi from students where fenshu > = 80 and kecheng = '语文 ') a
join
( select mingzi from students where fenshu > = 80 and kecheng = '数学 ') b
on a.mingzi=b.mingzi

热点排行