2 u012208775 u012208775 于 2015.06.03 23:01 提问

这题可以用嵌套查询吗

已知学生表S和学生选课表SC,其关系模式如下:
S(SNO,SN,SD,SSEX,SAGE,PROV)
SC(SNO,CN,GR)
其中,SNO为学号,SN为姓名,SD为系名,SSEX为性别,SAGE为年龄,PROV为省名,CN为课程名,GR为分数。
用SQL语句完成36~39题。
查询“中文系”学生选修了“计算机”课程的姓名和分数,查询结果按分数降序排序。

4个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.06.03 23:07
 SELECT S.* ,SC.GR,SC.CN FROM  S,SC WHERE S.SNO=SC.SNO AND S.SD='中文系' and sc.cn='计算机' order by sc.gr desc
danielinbiti
danielinbiti 回复taotao172: 写的是全部字段,那只取名字和分数就完了。
接近 3 年之前 回复
u012208775
u012208775 要把S中的所有属性都列出来吗?题意不是只要姓名吗?
接近 3 年之前 回复
devmiao
devmiao   Ds   Rxr 2015.06.03 23:34

可以用子查询,不过当数据量大的时候效率低,最好用join

u012208775
u012208775 假如有三张表,又分别各有1000行,子查询是不是1000+1000+1000而join是不是得1000^3。这又是为什么呢?
接近 3 年之前 回复
wsh1992o
wsh1992o   Rxr 2015.06.04 10:38

select SN,Gr from S join SC where SD = "中文系" and CN="计算机" orderby descend

datou431
datou431   Rxr 2015.06.18 10:56

可以用子查询,不过当数据量大的时候效率低,最好用join

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!