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

为什么不能用
where cno=’1‘ and cno=’2‘
而一定要用 where sno=’1‘ and sno in(select sno
from SC
where sno=’2‘)

工具/材料:以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、最后在该界面中,显示查询结果。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-12-23
你好像写错了吧,,,
我感觉应该是
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本回答被网友采纳
第2个回答  2019-12-15
查询同时选修了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‘)
第3个回答  2018-12-10
因为这样的意思是 在一行内课号既得等于1又得等于2 并没有这样的
第4个回答  2014-06-28
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的。
请采纳答案,支持我一下。本回答被网友采纳
相似回答