子查询的疑惑

imfjl 2004-04-06 04:30:21
我需要对一个表table1的每条记录都去判断它的域field1是否满足某个条件.这种条件在table2中定义.所以,我想通过子查询实现.语句如下:
select * from table1 where exists (select 'a' from table2 where table1.field1 between table2.field4 and table2.field5);
但发现select出来的和
select * from table1 where table.field1 between 1 and 100;不一样.(table2里只有一条记录,其中field4=1,field5=100).
为什么啊?
...全文
13 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
imfjl 2004-04-06
问题已经解决,子查询是没有问题的.只是一个隐式类型转换引起的问题.
回复
bzszp 2004-04-06
这样的话应该没有问题,
你把执行的结果贴出来看看
回复
imfjl 2004-04-06
这个条件为真为假不是对table1的每个记录才有吗?还是它的结果先于select * from table1的执行?
回复
jiezhi 2004-04-06
exists 后面的条件为真,就相当于没有条件了。
所以上面的语句是错误的。
回复
相关推荐
发帖
基础和管理
创建于2007-09-28

1.7w+

社区成员

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