Sql里的on能单独用吗?还是只有left/right/inner join 的时候才可以用呢,有什么单独的含义吗
on后面加条件和where后面加条件区别在哪里,求高手指教

解决方案 »

  1.   

    on 是生成临时表时使用的条件
    where 是在临时表生成好后对临时表过滤的条件
      

  2.   

    on有很多地方能用   如创建数据库指定log,就会用 log on,创建触发器 指定表  create trigger xx on table
    ---------
     至于  联接中的 on 和 where , 如果是 innerJoin内部联接,他们没有区别。 如果是外部联接,就会有点区别了
    比如说执行一个 left outer join ,
    步骤是
    1、对两张表做笛卡尔积,交叉联接
    2、用 on条件筛选,去掉一部份
    3、添加外部行,就是那些不符合条件的,因为left join是以左表为基,所以某些记录会添加回来,右表那部份则以null显示
    4,where条件筛选。所以where 条件筛选可能把那些 left join左基表的数据给去掉,就是那些右表为null的数据。但是如果把where中的条件写在on上,那这些记录就不会被筛选掉了
      

  3.   

    http://www.cnblogs.com/tuyile006/archive/2007/05/08/738651.html
    参考一下;
      

  4.   

    on 是生成临时表时使用的条件
    where 是在临时表生成好后对临时表过滤的条件
      

  5.   

    where后面是条件 on 是以什么为链接 
    最好不要弄混