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

oracle exists 的用法,求解,该怎么解决

2012-09-28 
oracle exists 的用法,求解用not exists执行结果和minus结果不同。aaa表idname1张三2李四3王五4张三5李四6x

oracle exists 的用法,求解
用not exists执行结果和minus结果不同。

aaa表
id name
1张三
2李四
3王五
4张三
5李四
6xxx

b表
id name
1张三
2李四
3王五
4王五
5李四


SQL code
select *  from (select max(id) id, name from aaa group by name) t where not exists (select 1          from (select max(id) id, name from b group by name) b         where b.id = t.id           and b.name = t.name) order by t.id;


结果:
id name
2李四
3王五
4张三
6xxx

SQL code
select max(id) id, name from aaa group by nameminusselect max(id) id, name from b group by name;


结果:
3王五
4张三
6xxx

[解决办法]
,先过滤 not exists 后 分组
[解决办法]
不一样也很正常啊,你到底关心啥。

前者各语句之间是互相影响的,共同作用出最后的结果集;
而后者是完整独立的执行两个SQL,然后再做减法。
[解决办法]
太神奇了,我这里执行是没有的,你自己再检查检查吧。。。或者发个图片出来看看你的执行结果包括SQL语句

热点排行