例如:一个二表连接的SQL,有两种写法:
(1)select A.c1,A.c2,B.c1,B.c2
from table1 A,table2 B
where A.id=B.id(2)select A.c1,A.c2,B.c1,B.c2
from table1 A join table2 B
on A.id=B.id哪种写法好呢?现在提倡用哪一种?
你喜欢用哪一种?我习惯用(1)

解决方案 »

  1.   

    据说join的效率高些 但是我喜欢用第2种 感觉好理解些
      

  2.   

    效率一样,1是老式写法,个人喜欢JOIN.
      

  3.   

    因为oracle 8i只支持第一种写法,以前用的多了就变成个人习惯了。
      

  4.   

    join语法的好处就是在构造语句的过程中,会知道数据是怎么查出来的,谁和谁连接,形成一个大表再进行选择,分组等,但写起来有点多,一般用第一种,有时会用第二种。在在外连接的时候,用第一种有时就不灵了。很难写。full outer join只能用第二种了,呵呵
      

  5.   

    第一种是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认为用户想得到一个交叉联结。 
      

  6.   

    习惯用(1),不过sqlserver中好像推荐join的方式
      

  7.   

    zwzw911 说的非常好,看来是行家.
      

  8.   


    第一种是标准1394写法,mysql,sqlserver,oracle都可以正常运行
    第二种只能在ms sql下运行
      

  9.   

    错,第二种是标准的ansi sql,在哪都是一样的。
      

  10.   

    在sql server里,如果连接的表多,并且数据量大,用Join性能要高,小数据量好象没看出有什么区别,就看习惯问题了
      

  11.   

    http://topic.csdn.net/u/20090808/02/f4da65dc-44d5-4b2d-aca2-496338615102.html 这个帖子详细说了整个问题如果想要优雅而易于维护且不容易写错的代码,当然用高标准的第二种方法。 
    如果必要考虑风险这个因素,比如涉及到多种平台的迁移或者整合,你应该用第一种,起码在两个表的情况下他还是比较安全的。
      

  12.   

    I'm used to using the second method
      

  13.   

    按题目中的写法,这两者最后执行是一样的,最后都是inner join
    但如果不知道具体原理的话,还是有可能出现问题,并且容易忽视。
    比如
    Book表
    id,name,type_id
    1,abc,1
    2,bcd,null
    Type表
    type_id,type_name
    1,TypeA
    那么使用题目中说的两种写法,都会导致book表中的id=2的记录被漏掉。
    原因就在inner join上,此时应该使用left outer join,从而保证book表的数据都可以取出来,无论type_id是否能与type表关联上。我习惯用显示声明关联的方式。
      

  14.   

    我也发现我的sql语句大部分是join的方式刚碰到个郁闷的问题  mysql不支持 full join的方式...晕
      

  15.   

    听说用join的话关联会检查数据的正确性,所以用join貌似比较好。我一直在用join。
      

  16.   

    只用了三个月的MS SQL的小菜鸟飞过
    平时喜欢用第一种,主要是习惯了
    第二种一般是在left join或right join 或 full join时才用
    以后坚决用第二种
      

  17.   

    喜欢 join  
      
    如果连接的表多了 join  比较清楚