标题:使用SQL语句按如下要求写出正确的查询语句
只看楼主
lovefan
Rank: 2
等 级:论坛游民
帖 子:31
专家分:53
注 册:2013-3-16
结帖率:75%
已结贴  问题点数:5 回复次数:11 
使用SQL语句按如下要求写出正确的查询语句
检索选修课程包含LIU老师所受全部课程的学生学号。
数据库中的四个关系如下:
教师关系T(T#,TNAME,TITLE)
课程关系C(C#,CNAME,T#)
学生关系S(S#,SNAME,AGE,SEX)
选课关系SC(S#,C#,SCORE)
S表
S#    SNAME    AGE    SEX
S1    WANG    15    男
S2    LI    17    女
S3    LU    19    女
S4    ZHAO    13    女
S5    YANG    20    男
C表
C#    CNAME    T#
C1    MATHS    T1
C2    DB    T2
C3    ENGLISH    T3
C4    COMPUTER    T2

SC 表
S#    C#    SCORE
S1    C1    50
S2    C1    70
S3    C1    80
S4    C1    75
S5    C1    87
S1    C2   
S2    C2   
S4    C2    85
S1    C3   
S1    C4    60

T表
T#    TNAME    TITLE
T1    WU    讲师
T2    LIU    教授
T3    ZHANG    助教
上面为关系图,希望高人能指点一下,我写了很久总是不出我想要的正确结果。非常感谢高手的回答!!!
搜索更多相关主题的帖子: 关系 课程 
2013-03-28 18:38
party620
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:696
专家分:2521
注 册:2013-1-31
得分:2 

select Sname from S表 where S# in(
select S# from SC表 where C# in(
select C# from C表 where T#=(
select T# from T表 whereTname='liu')))

可能有错,如果有错,请把错误粘贴出来,我可以根据错误来修改
2013-03-29 08:54
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:2 
程序代码:
select Sname from S表 where S# in(
select S# from SC表 where C# in(
select C# from C表 where T#=(
select T# from T表 where Tname='liu')))
2013-03-29 16:50
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
whereTname---where Tname
(---(
2013-03-29 16:51
party620
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:696
专家分:2521
注 册:2013-1-31
得分:0 
哦,小T版真细心
2013-03-30 08:42
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
谢谢夸奖
2013-03-30 08:45
lovefan
Rank: 2
等 级:论坛游民
帖 子:31
专家分:53
注 册:2013-3-16
得分:0 
回复 3楼 tlliqi
这个答案不对,这个答案的显示结果为
Wang            
Li            
Zhao   
根据题意及其表的分析结果应该为C1…………   
2013-04-03 06:23
party620
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:696
专家分:2521
注 册:2013-1-31
得分:0 
这个得到的是学生姓名,如果你想要学号
select S# from SC表 where C# in(
select C# from C表 where T#=(
select T# from T表 whereTname='liu')))  
你的S#是学号吧
2013-04-03 08:35
chenpengfei1
Rank: 2
等 级:论坛游民
威 望:1
帖 子:15
专家分:64
注 册:2013-3-30
得分:0 
支持楼上,我感觉这个in 子查询写的非常好!






这个得到的是学生姓名,如果你想要学号
select S# from SC表 where C# in(
select C# from C表 where T#=(
select T# from T表 whereTname='liu')))  
你的S#是学号吧
2013-04-24 22:55
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
回复 8楼 party620
没错
2013-04-25 08:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-402199-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.074015 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved