碰到一个问题,EJB中不支持以下sql,select A.a,A.b
from 
  (select c,d from TableA
   MINUS
   select c,d from TableB) C, TableA A, TableD d
where
   A.c = C.c
   AND A.d = C.d
   AND A.e = D.e请问如何修改sql,能把FROM中的子查询移到WHERE子句中???
谢谢。

解决方案 »

  1.   


    select   A.a,A.b 
    from   
    TableA   A,   TableD   d 
    where A.e   =   D.e 
          AND  (a.c,a.d) not in(select c,d from tableB)
      

  2.   

    select a,b from(
    select   A.a,A.b ,c.c
    from   
          TableB   C,   TableA   A,   TableD   d 
    where 
          A.c   =   C.c (+)
          AND   A.d   =   C.d (+)
         
          AND   A.e   =   D.e )
    where c is null
      

  3.   

    不是唯一的话
    原代码中A.c   =   C.c 这个条件会产生重复
    用3楼的吧
      

  4.   

    select a.a,a.b from
    (select c,d from tableA where (c,d) not in
      (select c,d from tableB))C,tableA a,tableD d
    where
     a.c=c.c
     and a.d=c.d
     and a.e=d.e