| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 345 人关注过本帖
标题:三种不同的查询为什么有不同的结果集?请教各位了.
只看楼主 加入收藏
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1532
专家分:180
注 册:2006-6-3
结帖率:79.38%
收藏
已结贴  问题点数:20 回复次数:1 
三种不同的查询为什么有不同的结果集?请教各位了.
我要找出二表不相同的报考号(kscjk比kscjk1表多一条记录(其中kscjk只有报考号而没有xm=' ')
在VFP6下:DBF数据库
kscjk表                 |     kscjk1表

报考号     xm           |      报考号              xm
...        ...             |      ....                 ...
s51002   xx                |     s51002                 xx

s51003                      | 此表此条是空记录

我采用三种方法:

第一种查询速度如此慢,象死机一样.
1\select kscjk.报考号,kscjk.xm from kscjk,kscjk1 where kscjk.报考号<>kscjk1.报考号 &&&类似死机
 
第二种结果不对,明只有一条,结果集cut字段1557131061
2\select count(*) from kscjk,kscjk1 where kscjk.报考号<>kscjk1.报考号

运行结果是错的,明只一条记录,但结果集cut字段报有1557131061

第三种
3\select kscjk.报考号,kscjk.xm from kscjk,kscjk1 where kscjk.报考号<>kscjk1.报考号 .and.kscjk.xm=' '
 
查出来的结果是s51003,是对的,但结果集有许多相同的s51003报考号(报考号s51003)
报考号           xm
 
s51003        均是空
s51003
s51003
..
..
..
  


请教:这三种情况是什么原因?请指教一下.


[ 本帖最后由 sylknb 于 2011-3-8 16:20 编辑 ]
搜索更多相关主题的帖子: 查询 
2011-03-08 16:17
png
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:126
专家分:880
注 册:2010-10-6
收藏
得分:20 
首先, 你有两个数据量很大的表.

其次,你的查询基本上是在回答这样的一个问题 - 针对kscjk表的每一条记录,在kscjk1 表中找出报考号不同的所有记录.  也就是说如果表kscjk有m条记录, 表kscjk1有n条记录,你的结果集应该接近 m * (n-1)条记录.

试一下 -
Select kscjk.* From kscjk left join kscjkONE on kscjk.报考号= kscjkONE.报考号 Where kscjkONE.报考号 is null
2011-03-10 00:56
快速回复:三种不同的查询为什么有不同的结果集?请教各位了.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017312 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved