sql练习:查询所有课程成绩小于60 分的同学的学号、姓名; 30

student表snocourse表cno,tnosc表sno,cno,scoreteacher表tno这个sql怎么写?还有一个不会,如下:(2)查询学过“谌燕”老师所... student表sno
course表 cno,tno
sc表sno,cno,score
teacher表 tno
这个sql怎么写?
还有一个不会,如下:
(2)查询学过“谌燕”老师所教的所有课的同学的学号、姓名;
(1)select st.*,s.score from student st
join sc s on st.sno=s.sno
join course c on s.cno=c.cno
where s.score <60

(2)select st.* from student st join sc s on st.sno=s.sno
join course c on s.cno=c.cno
join teacher t on c.tno=t.tno
where t.tname='谌燕'

这么写感觉不对呢
展开
 我来答
世界哪有好人10
2016-07-07
知道答主
回答量:1
采纳率:100%
帮助的人:1088
展开全部
(2)这么写坑定不对,这么写得出的答案是“上过那个老师的课程的学生”而不是“上过那个老师所有课程的学生”,而且那个答案效率太低,还不如这个:
select sno,sname from student
where sno in(select sno from sc
where cno in (select cno from course
where tno in (select tno from teacher where tname='谌燕')));
justhaha
2018-10-08
知道答主
回答量:1
采纳率:0%
帮助的人:804
展开全部
select s.sno,s.sname from student s join sc c on s.sno=c.sno where c.sno not in (select distinct sno from sc where score>60);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不懂就来百
2013-07-09
知道答主
回答量:98
采纳率:0%
帮助的人:28万
展开全部
第一个:
select sno,sname from student where sno not in (select sno from sc where score>=60)
第二个那个sc表中sno是sc表的主键还是student表的主键
追问
sno是student表的主键
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ttpsan520
2013-07-09 · TA获得超过404个赞
知道小有建树答主
回答量:312
采纳率:100%
帮助的人:310万
展开全部
select st.*,s.score from student st
inner join sc s on st.sno=s.sno
inner join course c on s.cno=c.cno
where s.score <60

掉了 inner 或者 left 或者 right
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式