mysql exists及not exists的使用

对exists及not exists的使用根据下面的示例进行解释

如sql:

select sname from student where exists (select * from score));

这里,如果select * from score语句查询到结果【只要不是Empty,就是查询到了结果】,则当执行exists判断的时候就会返回true,如果结果集为空,则exists判断结果为false。同理,not exists与exists判断结果相反。

 

exists一般用于内联查询如下:

表结构如图,查找任课教师中,没被匡明选过课的教师编号和姓名[编写sql查询]

 

select a.tno 教师编号,a.tname 教师姓名 from teacher a 
where exists(select *
                 from student b,score c ,course d 
                        where b.sno = c.sno and d.cno = c.cno and b.
                        sname='匡明' and d.tno = a.tno
                    );

 

posted @ 2018-05-29 16:11  赤子说  阅读(585)  评论(0编辑  收藏  举报