请问两条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")
[解决办法]