赞
踩
关于这个知识点,因为一眼看不懂,当时又没时间,所以我很早就定下了计划要好好了解,但是一直拖到现在,才有时间好好看看整理整理。
看得懂exists是有结果就返回,但是就不是很理解具体效果,所以决定敲一敲
大概我理解是这样的
假设有a,b两张表
a(id, name)
1 a1
2 a2
3 a3
b(id, name)
1 b1
3 b3
select *
from a
where EXISTS (select * from b where a.id = b.id)
得出的结果会是
1 a1
3 a3
这个可以理解为a left jion b, 或者说是用a的数据去b表中找,a表中的数据在b表中exist(存在或者说符合exist()里的条件),exist方法为真,当条记录就返回
select name from user where exist(sql语句)
从上面这句话来解析就是 “exist(sql语句)” 这一段当成整体,只要是里面的sql语句条件满足的记录就返回。
not exist同理
select sno
from t_student t1
where not exists(select 1 from t_score t2 where t2.sno = t1.sno)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。