| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 749 人关注过本帖
标题:关于SELECT-SQL的问题
取消只看楼主 加入收藏
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:1 
关于SELECT-SQL的问题
前二个帖子受到各位老师指教,受益匪浅,在此谢谢了。继续提一个问题,请老师们继续指导。
SET TALK OFF
SET SAFETY OFF
SET CENTURY ON
SET EXACT ON
SET DATE YMD
SET SYSMENU OFF
CLEAR ALL
CLOSE DATABASES
CREATE DBF L1 (A1 C(10), A2 C(10),A3 N(2)) &&建立表
FOR X=1 TO 8
Y=STR(X,1)
APPEND BLANK
REPLACE A1 WITH 'SJA'+Y,A2 WITH 'SJB'+Y,A3 WITH X
ENDFOR
LIST
COPY TO L2 FOR A3<6
SELECT 0
USE L2
DELETE FOR A3=3
PACK
LIST
WAIT
*1
SELECT L1.* FROM L1,L2 INTO DBF L3 WHERE L1.A3=L2.A3
BROWSE && SQL查询达到预想目的,出现28条记录(A3=1,2,4,5)。
*2
SELECT L1.* FROM L1,L2 INTO DBF L3 WHERE !(L1.A3=L2.A3)
BROWSE &&SQL查询没有达到预想目的,出现28条记录。为什么不是预想的4条记录(A3=3,6,7,8)。

RETURN

目的是在L1表中查询除去L2表的记录。
为什么第二次查询结果不是预想的4条记录(A3=3,6,7,8)。如何才能迅速产生预想的4条记录(A3=3,6,7,8)。

搜索更多相关主题的帖子: 问题 
2012-02-09 08:21
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
谢谢TonyDeng老师详细讲述,对SQL查询有进一步了解。看来还是多用在傳統VFP索引算法下實現目的的语句,慎用SQL语句。

为了达到在L1表中查询除去L2表的记录的目的,我还是按TonyDeng老师的意见,采用按A3建立SET RELATION關聯,L1是主動表,L2是被動表,L1用 DELE FOR L1.A3=L2.A3  PACK 命令获得。

谢谢qingfameng老师在2楼对SQL查询的讲述。记得有一个高手用此特性做某组合的程序段,效果特快。

2012-02-11 09:04
快速回复:关于SELECT-SQL的问题
数据加载中...
 
   



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

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