子查询:
Exists(subquery)
判断依据:
如过子查询可以返回数据,则认为exists表达式返回真,否则,返回假。
涉及到了多个表,从一个表中获取到一些信息,然后
在另一个表中找到相同信息的记录。
Select * from teacher_class where exists (select * from teacher where
Teacher_class.id=t_id);
等同于
Select * from teacher_class where id in (select id from teacher);
两种方法的思路不一致:
Exists:
先获得每一条teacher_class记录的数据,然后获得id字段,去teacher
表内找到对应值,找到就符合条件。
In:
先获得所有t_id的可能性,得到一个t_id集合,再检索teacher_class数据时,判断当前的id是否在所获得的t_id集合内。
其中 t_id 为teacher 的字段,
Id 为teacher_class 的字段