专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > SQL

sql 多表查询 执行顺序有关问题

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
sql 多表查询 执行顺序问题
语句如下:

select cfyysljcb.yyjl,
  cfyysljcb.CFID,
  .....
  cfb.YSBH,
  cfb.YY_ID,
  cfb.BRNR,
  cfb.JBLX,
  yyb.ypname
  from T_JC_YYJC_CFYYSLJC cfyysljcb, T_JC_CF cfb, T_JC_XS yyb
  
 where cfyysljcb.cfid = cfb.cf_id
  and cfyysljcb.cfyyid = yyb.id
   
  and cfyysljcb.id = ''
  and cfb.cf_id = ''
  and cfb.yy_id = '';
这样的查询 如果不加后面三个条件,数据记录数就是三个表记录数相乘的结果,

问题: 上面的语句 是将三个表的结果全部查出来后根据条件过滤,还是先根据条件过滤然后得到结果的???




------解决方案--------------------


这个问题比较复杂,最近好象讨论优化的贴子很多。

下面两个贴子是MySQL中的,不过各数据库基本类似。具体你需要参考一下SQL Anywhere 的文档中的介绍了。
(一般主要考虑索引,如果你的三个表都没有相关索引,则会先做 后面三个条件,然后再进行笛卡尔积)
http://topic.csdn.net/u/20090526/17/639d78ec-e299-40d0-9c8e-8d5b21229405.html
http://topic.csdn.net/u/20090520/16/a96a2e90-a935-4460-837e-e52b4557c519.html
------解决方案--------------------
根据SQL执行顺序,应该是FROM,再WHERE
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: