今天在学习sql语句时,遇到关于exsits的用法,下面是题目:
表架构Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#)
课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表
查询学过“001”并且也学过编号“002”课程的同学的学号、姓名:
即执行主句查询前,先查询是否子句是否为真,若存在学过002课程的学生,再执行查询学过001的,
此时查询出来的结果,就符合既学过001又学过002。
select Student.`S#`,Student.Sname from Student,SC where Student.`S#`=SC.`S#` and SC.`C#`=\'001\'and exists(
Select * from SC as SC_2 where SC_2.`S#`=SC.`S#` and SC_2.`C#`=\'002\');