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

请教两条SQL语句的效率

2012-04-03 
请问两条SQL语句的效率表说明:1、系统信息表sysinfo.opid当前操作员号2、仓库档案表ywh.whcode仓库编号ywh.w

请问两条SQL语句的效率
表说明:
1、系统信息表
sysinfo.opid 当前操作员号

2、仓库档案表
ywh.whcode 仓库编号
ywh.whname 仓库名称

3、操作员对仓库的操作权限表
yopwh.opid 操作员号
yopwh.whcode 可操作仓库编号


目标:列出当前操作员可操作的仓库

1、用连接
SQLExec(lnhandle,"select ywh.whcode,whname from ywh left join yopwh on ywh.whcode=yopwh.whcode where opid=?sysinfo.opid","curjswh")

2、用嵌套查询
 SQLExec(lnhandle,"select whcode,whname from ywh where whcode in (select whcode from yopwh where opid=?sysinfo.opid)","curjswh")
   

请问:哪种方式效率高些?

[解决办法]
有索引的情况下,第一个快一些。

但实际上,由于你的操作员不会有很大数据量级的yopwh.whcode,所以两个查询几乎没有差别。
[解决办法]
索引情况如何?第1个是左连接,第2个是内连接,在一般情况下,内连接效率>外连接,
因为你2个SQL语句都 以ywh 表为基准,效率应该相差不大
[解决办法]
SQLExec(lnhandle,"Select A.whcode,A.whname From ywh A Inner Join yopwh B On A.whcode=B.whcode Where B.opid=?sysinfo.opid","curjswh")
[解决办法]

引用个人感觉从视图查询多走了一道路,效率没有用查询语句高,是不是这样的?

热点排行