Mysql的exist()用法


简介

      EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。

      EXISTS 指定一个子查询,检测行的存在。语法:EXISTS subquery。参数 subquery 是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。结果类型为 Boolean,如果子查询包含行,则返回 TRUE。

 

准备2张表,并插入数据

学生表

create table student(userid int ,username varchar(20),age int ,classid int);

insert into student(userid,username,age,classid) values
(1,'zs',23,01),(2,'ls',25,02),(3,'ww',26,01),(4,'zl',56,02),(5,'hehe',34,04),(6,'xixi',14,04);


 

 

班级表

insert into classinfo(classid,classname) values(01,'语文'),(02,'数学'),(03,'英语');

create table classinfo(classid int ,classname varchar(20));

 

 

学生表中的5和6号学生并不在已有的班级表中,现在需要查询班级存在的学生的信息

select * from student s
where exists(
select * from classinfo c where s.classid = c.classid );


 

 

子查询查询的是班级信息,而外部查询的是学生信息,学生信息中的userid,username,age在
班级信息表中并不存在,那又是如何查询的?EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False

EXISTS指定一个子查询,用于检测外部查询的行中的字段是否存在于子查询中

原文链接:https://blog.csdn.net/weixin_42834505/article/details/106695979


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM