两个表
sc(sno,cno,grade)
course(cno,cname)
找出选修计算机网络这门课成绩大于90的学生,
请问这样写为什么结果正确?
select sno
from sc
where cno in(
select cno from course
where cname='网络' and grade>90)
究竟grade>90应该写在内层查询还是外层查询呢?
sc(sno,cno,grade)
course(cno,cname)
找出选修计算机网络这门课成绩大于90的学生,
请问这样写为什么结果正确?
select sno
from sc
where cno in(
select cno from course
where cname='网络' and grade>90)
究竟grade>90应该写在内层查询还是外层查询呢?
select * from sc a,course b where grade>90 and a.cno=b.cno and b.cname='网络'
select * from sc a,course b where grade>90 and a.cno=b.cno and b.cname='网络'
就是我不明白,为什么grade写在内层也可以呢?
这个查询的执行过程是怎么样的呢?
WHERE EXISTS(SELECT * FROM COURSE T1 WHERE T.CNO=T1.CNO AND T1.CNAME='网络'AND T.GRADE>90)
如下:
create table sc(sno int,cno varchar(20),grade int)
create table course(cno int,cname varchar(20))
insert into sc select 2,'网络',95
insert into course select 2,'网络'select sno
from sc
where cno in(
select cno from course
where cname='网络' )
and grade>90
select * from sc a,course b where grade>90 and a.cno=b.cno and b.cname='网络'
这样的查询语句,因为在course 表中确实没有存在grade的字段,如果存在,那么就会提示你grade不明确,如果是外层条件的话需要加在外边