这个就是 连接时 WHERE 和 ON 的区别问题WHERE 是选择条件 他是在搜索的结果集里 进行筛选ON 是连接条件 影响返回的结果集

解决方案 »

  1.   

    sql 会先筛选join部分的结果集,把符合条件的才开始where
      

  2.   

    很简单,两种方法抽出的数据条数不一样。第一种,是将所有的表连接起来后再做排除,所以,有可能得出结果比orderdetail表里的总数据数少;
    第二种,是在rep2hosp表内先做排除,再与orderdetail表连接,所以总数据数肯定跟orderdetail表里的总数据一致这里应该注意使用Left Join的使用原理
      

  3.   

    select GE_employee.employeeid,GE_employee.employeename,GE_orger.dept from GE_employee
    left join GE_orger on GE_employee.employeeid=GE_orger.employeeid and utortype='2'select GE_employee.employeeid,GE_employee.employeename,GE_orger.dept from GE_employee
    left join GE_orger on GE_employee.employeeid=GE_orger.employeeid where utortype='2'像上面这两句,第一句会把utortype不等于2的全都调出来,对连接的限制在这里为什么会失效呢?
      

  4.   

    在sql中按下ctrl+L就看到不同了
      

  5.   

    http://www.cnblogs.com/tuyile006/archive/2007/05/08/738651.html