首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

not exists在这个语句中如何理解

2014-01-23 
not exists在这个语句中怎么理解?我简化了一下表名之类的,让语句看起来小一些,这是“每个Y中最新的X”select

not exists在这个语句中怎么理解?
我简化了一下表名之类的,让语句看起来小一些,这是“每个Y中最新的X”

select * from ZT Z where (not exists(select * from ZT Z2 where(Z2.y = Z.y) and (Z2.x>Z.x)))




我在网上查了not exists的意思,但是理解起来不对啊,子查询select * from ZT Z2 where(Z2.y = Z.y) and (Z2.x>Z.x)这句话是把最小的去掉吧?加上ZT z试了试,也确实是这个意思。再加上not exists,岂不是求最小的?结果最大的出来了。。。百思不得其解啊~~~
[解决办法]
为什么用not exists.
exists只要有一条满足条件就返回真值。。。not exists一样。。。
根据这个判断大小应该不成立吧

[解决办法]
引用:
Quote: 引用:

为什么用not exists.
exists只要有一条满足条件就返回真值。。。not exists一样。。。
根据这个判断大小应该不成立吧



可是确实做到了。。。我就想知道是怎么做到的,逻辑上讲不通啊。具体的x字段是一个时间字段

需要注意的是你这个语句是一个整体,你求的Z里值(不是Z2),z2在这里只是起一个连接作用。
select * from ZT Z2 where(Z2.y = Z.y) and (Z2.x>Z.x)这里其实也是求Z的值,如果是求Z的值,那么剩下的就是最小的,加上NOT exists 就是最大值

热点排行