用SQL查询同时选修了1号课和2号课的学生学号

为什么不能用wherecno=’1‘andcno=’2‘而一定要用wheresno=’1‘andsnoin(selectsnofromSCwheresno=’2‘)... 为什么不能用
where cno=’1‘ and cno=’2‘
而一定要用 where sno=’1‘ and sno in(select sno
from SC
where sno=’2‘)
展开
 我来答
sj20110227
2012-06-22 · 超过16用户采纳过TA的回答
知道答主
回答量:54
采纳率:100%
帮助的人:34.4万
展开全部
sno 指的是什么?cno指什么? 上面的sql语句是不可能实现同样的功能的。
sno如果是指学生学号
cno是指课程号的话。
where cno=’1‘ and cno=’2‘
是指课程号是1和2 的学生信息。
where sno=’1‘ and sno in(select sno
from SC
where sno=’2‘)
是指学生学号是1和2 的学生,事实上,作为主键的sno没有可能同时是1和2的。
追问
where cno=’1‘ and cno=’2‘
那这个为什么不能查询出同时选修了一号课和二号课的学生?
追答
你把所有的SQL语句写出来,需要看看你查询的是哪个表。
wanzhongwen19
2012-07-04 · 知道合伙人互联网行家
wanzhongwen19
知道合伙人互联网行家
采纳数:112 获赞数:870
毕业于湖南吉首大学,学士学位。从事web行业五年经验,现任中国燃气集团担任前端开发工程师

向TA提问 私信TA
展开全部
查询同时选修了1号和2号课的学生学号

涉及到两个表.学生表和课程表

语句: select * from student inner join SC on student.sno=SC.sno and
cno in ('1','2')

为什么不用where cno=’1‘ and cno=’2‘ 这个关系到数据库的优化问题,哪个执行快,就写哪个

那个语句也可以这样写啊where sno in (select sno from sc where sno=’1‘ )and sno in(select sno from SC where sno=’2‘)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我的天123_啊
2022-03-20
知道答主
回答量:9
采纳率:0%
帮助的人:3999
展开全部
我感觉你连问题都问错了吧
你是想问
为什么不能用
where cno=’1‘ and cno=’2‘
而一定要用 where cno=’1‘ and sno in(select sno
from SC
where cno=’2‘)
这个吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帅春桖92
2012-07-04 · 超过28用户采纳过TA的回答
知道答主
回答量:112
采纳率:100%
帮助的人:71.7万
展开全部
因为这个and是且的意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式