标题:关于SQL命令的一道题
只看楼主
taiyanghua
Rank: 1
等 级:新手上路
帖 子:39
专家分:4
注 册:2010-10-11
结帖率:50%
已结贴  问题点数:20 回复次数:10 
关于SQL命令的一道题
现有三个表结构如下:
学生表:student(学号,姓名,年龄)
课程表:course(课程号,课程名)
选课成绩表:score(学号,课程号,成绩)

要求查询同时选修"C1"和"C5"两门课的学号,我是这样写的,但无法实现,请大家帮忙
select 学号 from score group by 学号 having 课程号="C1" and 课程号="C5"
搜索更多相关主题的帖子: 课程表 查询 course having 成绩表 
2011-09-02 14:47
lbwg
Rank: 2
等 级:论坛游民
帖 子:76
专家分:53
注 册:2011-8-21
得分:0 
select 学号 from score group by 学号 where 课程号="C1" and 课程号="C5"
2011-09-02 15:10
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
得分:5 
试试:
SELE DISTINCT 学号,课程号 FROM score INTO DBF L1 WHERE 课程号="C1"
SELE DISTINCT 学号,课程号 FROM score INTO DBF L2 WHERE 课程号="C5"
SELE L1.学号 FROM L1,L2 WHERE L1.学号=L2.学号
2011-09-02 15:24
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
得分:0 
'C1','C5'是 课程号 的记录。在选课成绩表:score中,不可能有 课程号="C1" and 课程号="C5" 的记录。
2011-09-02 15:31
taiyanghua
Rank: 1
等 级:新手上路
帖 子:39
专家分:4
注 册:2010-10-11
得分:0 
回复 2楼 lbwg
课程号不可能同时是C1又是C5,所以不行
2011-09-02 15:33
taiyanghua
Rank: 1
等 级:新手上路
帖 子:39
专家分:4
注 册:2010-10-11
得分:0 
本意是有很多个同学,每个同学可以选修几门课,想找同时选修那两门课的同学
panpende的方法倒是能实现,用一条可以完成吗

[ 本帖最后由 taiyanghua 于 2011-9-2 15:40 编辑 ]
2011-09-02 15:35
lbwg
Rank: 2
等 级:论坛游民
帖 子:76
专家分:53
注 册:2011-8-21
得分:10 
哈哈,我也晕了。但是这样可以吗?
select 学号 from score where 课程号="C1" and 学号 in (select 学号 from score where 课程号="C5" )
2011-09-02 15:53
lydiayang
Rank: 1
等 级:新手上路
帖 子:5
专家分:6
注 册:2011-9-2
得分:5 
将成绩表看成两张表
select s1.sno  from score s1,score s2 where  s1.sno=s2.sno and 'c1'and 'c5';
2011-09-02 18:24
taiyanghua
Rank: 1
等 级:新手上路
帖 子:39
专家分:4
注 册:2010-10-11
得分:0 
回复 7楼 lbwg
非常感谢,按你的做对了
2011-09-03 14:33
taiyanghua
Rank: 1
等 级:新手上路
帖 子:39
专家分:4
注 册:2010-10-11
得分:0 
回复 8楼 lydiayang
原来一个表可以看成两个,学习了
2011-09-03 14:36



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




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

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