这个sql如何写效率最高?(100分)

  • 主题发起人 主题发起人 fjx_jwf
  • 开始时间 开始时间
F

fjx_jwf

Unregistered / Unconfirmed
GUEST, unregistred user!
sqlserver2000
有三个表
regions 片区表
结构如下
regionid regionname parentid
0 中国 -1
1 北京 0
2 东城区 1
3 四川 0
4 成都 3
..........
f01jxsdak 经销商档案库
regionid jxsdm jxsmc ........
4 25 xxxxxxxxx
.................
f01jxsykcbb 经销商月库存报表
jxsdm kcsl ......
.........
现在我想达到下列语句的效果,但下列语名效率太低。
谁能帮我优化一下
select jxsdm,kcsl from f01jxsykcbb where jxsdm in (select jxsdm from f01jxsdak where regionid in (select regionid from regions where parentid in (select regionid from regions where parentid=cast(@para2 as int))))
 
Select AAA.jxsdm,AAA.kcsl
From f01jxsykcbb AAA,
f01jxsdak BBB,
regions CCC,
(select regionid from regions where parentid=cast(@para2 as int)) DDD
where AAA.jxsdm=BBB.jxsdm and
BBB.regionid=CCC.regionid and
CCC.parentid=DDD.regionid
大致如上,未验证。
 
效率差不多呀?
 
建立视图,然后查询
 
in 语句效率差,如果有主键和外部键的话可以用联结。
 
将@para2的内容存入到一个临时表,再连接查询,
尽量多用外连接,不要用in
 
to zhyesno:能具体一点儿
 
后退
顶部