您的位置:首页 > 其它

not exists(select 1 什么意思

2014-10-22 14:28 549 查看
select * from tt t where not exists(select 1 from tt where 姓名=t.姓名 and 薪资>t.薪资 )

对于表tt的记录进行扫描,

对于其中任一条记录,查询相同表中相同姓名的记录,查找其中是否存在薪资>当前记录的薪资的记录,如存在,扫描到的记录即不符合条件,

如不存在,即扫描到的记录符合where的条件,将作为查询结果.

考虑最简单的情况

姓名,薪资

chen,1000 --此记录与全部chen记录1000-4000比较,2000以上>1000存在查询结果,此记录不符合where 条件

chen,2000 --此记录与全部chen记录1000-4000比较,3000以上>2000存在查询结果,此记录不符合where 条件

chen,3000 --此记录与全部chen记录1000-4000比较,4000>3000存在查询结果,此记录不符合where 条件

chen,4000 --此记录与全部chen记录1000-4000比较,没有>4000的记录,此记录符合where 条件

最后符合条件的记录为

chen,4000

条件就是查询相同姓名 没有比查询的记录的薪资高的记录

实际结果就是薪资的最大值.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: