用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‘)
展开
 我来答
仁昌爱娱乐
高粉答主

2020-11-20 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459852

向TA提问 私信TA
展开全部

工具/材料:以Management Studio为例。

1、首先在桌面上,点击“Management Studio”图标。

2、然后在该界面中,点击“新建查询”按钮。

3、之后在该界面中,输入查询同时选修了1号课和2号课的学生学号的SQL语句:selec t no,name from SC where Cno = '1' and  no in (selec t no from SC where   Cno = '2')。

4、接着在该界面中,点击“执行”按钮。

5、最后在该界面中,显示查询结果。

吴bangg
推荐于2018-12-23 · TA获得超过113个赞
知道答主
回答量:2
采纳率:100%
帮助的人:1840
展开全部
你好像写错了吧,,,
我感觉应该是
select Sno
from SC
where Cno='1' and son in (select Sno from SC where Cno='2');
或者
where Cno='1' intersert select Sno from SC where Cno='2');
INTERSECT对两个查询做交集。相当于and
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
於晓楠买甘
2019-12-15 · TA获得超过2.9万个赞
知道小有建树答主
回答量:1.1万
采纳率:27%
帮助的人:603万
展开全部
查询同时选修了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‘)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Envy诶
2018-12-10
知道答主
回答量:1
采纳率:0%
帮助的人:798
展开全部
因为这样的意思是 在一行内课号既得等于1又得等于2 并没有这样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
owldxcgzoq
2014-06-28 · TA获得超过268个赞
知道答主
回答量:119
采纳率:0%
帮助的人:108万
展开全部
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的。
请采纳答案,支持我一下。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式