本帖最后由 zhouc_1983 于 2011-07-27 10:10:13 编辑

解决方案 »

  1.   

    一样!left join 或 right join 的话结果集不同。
      

  2.   

    第一种是ANSI89的写法,第二种是ANSI92的写法。
    在MSSQL2005中,两种写法生成的执行计划是一样。
    第一种写法比较简单,第二种写法比较规范,如果没有特殊原因,建议使用第二种方法。因为第二种方法,MSSQL会进行语法检查,当要写一个内部联结如:select A.c1,A.c2,B.c1,B.c2 from table1 A join table2 B, MSSQL会报错,提醒你写上on的条件,而select A.c1,A.c2,B.c1,B.c2 from table1 A,table2 B则不会,此时MSSQL认为用户想得到一个交叉联结。 
    http://topic.csdn.net/u/20090808/02/f4da65dc-44d5-4b2d-aca2-496338615102.html 这个帖子详细说了整个问题