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

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语句