解决方案 »

  1.   

    LEFT JOIN和直接WHERE肯定有区别的。第二句相当于INNER JOIN .
    至于WHERE条件的摆放与你的索引有关系。
      

  2.   

    FROM a, c WHERE a.node_id = c.et_id 其实就是 FROM a INNER JOIN c ON a.node_id = c.et_id
    所以你两个语句的连接方式不一样,结果有区别。
      

  3.   

    ORACLE 中条件的前后顺序对性能可能有影响,SQL Server 没有这个说法。
      

  4.   

    2008之前,where条件的列顺序最好和索引的定义顺序一样(假设索引是复合索引),2008开始没有这个限制
      

  5.   

    left join 和where 区别在那
      

  6.   

    我的是SQL Server 2008 R2的,where 顺序的怎么排列,你们说的索引是什么索引,是具簇索引还是非具簇,还是都有
      

  7.   

    both,但是,建复合索引时,选择度高的应该在前列,因为统计信息只存放第一列的直方图
      

  8.   

    单从这个题目的效果,两种写法应该没有区别,因为引用的字段都是自定义字段,
    如果从语法角度上说,左连接是不限制左表,只要引用了左表的字段,不管它满不满足连接条件,也就是右表中对应的连接值是否匹配,所有引用字段都要在查询结果中显示出来,不满足条件的,左表对应字段值用null填充,where 连接实际是筛选条件,与inner join相同,个人觉得where 和 inner join应该有细微区别,只是我也没搞清楚 。