hc学习平台

 找回密码
 立即注册
搜索
热搜: 活动 交友 javakc
 › 学习交流 › Oracle › 请用多种方式查询出选了数学这门课的所有学生姓名
查看: 1311|回复: 0
打印 上一主题 下一主题

请用多种方式查询出选了数学这门课的所有学生姓名

[复制链接]

2249

主题

0

帖子

0

博客

admin

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

跳转到指定楼层
楼主
发表于2018-07-27 16:25:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
已知学生表(student:id,name),课程表(class:id,name),选课表(sc:studentid,classid),请用多种方式查询出选了数学这门课的所有学生姓名(两种以上,并说明哪种效率最高)

0

主题

298

帖子

0

博客

moon110

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2019-07-22 14:12:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

select t3.name from class t1 

    left join sc t2 on t1.id=t2.classid

    left join student t3 on t2.studentid=t3.id

    where t1.name='数学'


select s.name from stutent s,class c, sc.sc

where c.name ='数学',and studentid=s.id and classid=c.id


select name from student where id in (select t2.studentid from class t1,sc t2 where t1.id=t2.classid and t1.name='数学')

0

主题

982

帖子

0

博客

m1359292934

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2019-11-07 08:53:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

select s.name from stutent s,class c, sc.sc

where c.name ='数学',and studentid=s.id and classid=c.id

 

 select s.name ,count(grade) from grade_test g
inner join  class_test c on c.cid=g.cid and c.name ='数学'
inner join student_test s on g.sid=s.sid
group by s.name;

第一种效率高直接从选数学课 的学生中查起



站点统计|举报|Archiver|手机版|小黑屋|Comsenz Inc.

GMT+8, , Processed in 0.195171 second(s), 9 queries .

Powered by javakc! X1.0

© 2004-2014 javakc

f1208.com 备案号:京ICP备14030918号-1

返回顶部