簡介
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