准备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指定一个子查询,用于检测外部查询的行中的字段是否存在于子查询中