本帖最后由 wnf2009 于 2013-02-14 16:16:06 编辑

解决方案 »

  1.   

    第一个问题是可以的hr@ORCL> select * from a inner join b on a.id=b.id where a.name=b.name;        ID NAME               ID NAME
    ---------- ---------- ---------- ----------
             1 aa                  1 aa
             2 bb                  2 bb
             3 cc                  3 cc
             4 dd                  4 dd
      

  2.   

    不要这样写sql语句,很容易引起混乱,尤其在where条件那块。单独的做内连接,然后查询出来的结果集作为子查询再内连接,这样虽然麻烦,但不会错。
      

  3.   

    oracle里这是两种方式。
    where 就相当于 join .....on
    通常情况下只选择一种使用,这两者结合起来多数不同时使用的
      

  4.   

    如:
       select * from a left outer b on a.bid=b.id
    相当于
       select * from a, b where a.bid=id(+)
      

  5.   

    额。。不是我写,是给别人review代码的时候,看到详细设计书上是内联on+条件,写代码的那个人on后面的条件放到where后了看了大家的回帖,虽然那人写得对,但是没按照设计书写。。这个不太好结贴给分了,我也长知识了