高手请进!!!!!关于ORACLE中的sql语句包含NOT EXISTS的问题

zqhero 2004-06-18 05:53:56
本人想找不包含在结果集的中的WAPSNZDB记录
select * from WAPSNZDB where NOT EXISTS(select b.spcode spcode,b.pagecode pagecode from linkmenu a,WAPSNZDB b where a.spcode = b.spcode and a.pagecode = b.pagecode)

打直接运行这个语句时返回的记录总数是1550
select * from linkmenu a,WAPSNZDB b where a.spcode = b.spcode and a.pagecode = b.pagecode

而执行
select * from WAPSNZDB;
返回的结果集的记录总数为1554

请问如果执行下面的语句是不是应该返回的记录总数为4呢?而现在是没有找到任何记录.
select * from WAPSNZDB where NOT EXISTS(select b.spcode spcode,b.pagecode pagecode from linkmenu a,WAPSNZDB b where a.spcode = b.spcode and a.pagecode = b.pagecode)

WAPSNZDB表结构是
mobile,spcode,pagecode
linkmenu表结构是
menuname,spcode,pagecode

我现在就是想打那4条记录给找出来,但是我就是不知道怎么写sql语句,我上面上语句写法对吗?如果不对,应该用什么方法打它能给找出来呢?请教各位高手了!
...全文
148 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
CsdnRob 2004-07-01
up
回复
jackjingsg 2004-06-21
对a的字段加上左关联(+),这样就避免了NULL值没有被取出的情况
回复
which 2004-06-20
注意你字段中的null值,
举个最简单的例子,表a的字段b有四个值分别是 ‘1’,‘2’,‘3’,null
语句select b from a where b in('1','2') 返回两条记录
语句select b from a where b not in ('1','2') 返回一条记录
还有一条记录需要 用语句select b from a where b is null才能返回
oracle中的null值是个特殊值,要区分对待
回复
don_shen 2004-06-20
注意Null, UP !!
回复
zqhero 2004-06-19
up
回复
weizyan 2004-06-19
up!!


select * from WAPSNZDB b
where NOT EXISTS
(select 'X'
from linkmenu a
where a.spcode = b.spcode and a.pagecode = b.pagecode
)
回复
atao245993 2004-06-19
select * from WAPSNZDB b
where NOT EXISTS
(select 'X'
from linkmenu a
where a.spcode = b.spcode and a.pagecode = b.pagecode
)
回复
atao245993 2004-06-19
http://www.dbonline.cn/source/oracle/20031218/oracle%20SQL%20performance%20tuning5.html
回复
atao245993 2004-06-19
select * from WAPSNZDB
where NOT EXISTS
(select 'X'
from linkmenu a,WAPSNZDB b
where a.spcode = b.spcode and a.pagecode = b.pagecode
)
回复
相关推荐
发帖
基础和管理
创建于2007-09-28

1.7w+

社区成员

Oracle 基础和管理
申请成为版主
帖子事件
创建了帖子
2004-06-18 05:53
社区公告
暂无公告