外联结不允许使用in 和 or 语句。有什么其他解决方案吗?
select A.id from A,B where A.id = B.id(+) AND B.num in ('1','2','3')
想实现的结果是B.num in ('1','2','3')也实现外联结。

解决方案 »

  1.   


    select A.id
    from A left join B
    on A.id = B.id
    where B.num in ('1','2','3')
      

  2.   

    select A.id from A,
          (select id from B where num in ('1','2','3')) B1 
    where A.id = B1.id(+) 
      

  3.   

    外连接本来就是可有可无的记录,你再加一个or或in来锁定,肯定造成语义的混乱了,所以不允许,二楼的兄弟的左连接就可以了,而且这是标准的sql写法