select * from       (select 'b' as col1 from dual ) t1
       left join (select 'a' as col1 from dual ) t2 on (t1.col1=t2.col1 or t2.col1='a')
       
where t2.col1='b'   请问大家怎么看这句话的?我觉得这句话是没有结果出来的,但是pl/sql有结果出来,一条col1 col1
b    
请教达人帮忙解答?
我用的是9i。然而,10g好像又是没有结果的我让朋友试过了。。

解决方案 »

  1.   

    left join 肯定是出来一条结果
      

  2.   

    INNER JOIN 就一条都出不来
      

  3.   

    不过加where后应该是没结果了,lz给的结果和where不符
      

  4.   


    理由?后面跟了where条件啊?又不是只有left join
      

  5.   


    GG,我用plsql跑出来的结果。。不是我给的。。就是因为想的跟我不一样,我才来问的嘛
      

  6.   

    如果9和10不同,可以算是bug吧
    可能是因为执行逻辑不同,一种和on语句一起执行,另一种是先left join后再过滤where