2016-10-13 3 views
0

가입 :오라클 외부 내가 다음과 같습니다 쿼리가 구문

select * 
from find fsc, 
     let lf, 
     cust cus, 
     STRIKE ist 
WHERE fsc.id = lf.id 
AND  ist.ID_old = fsc.ID_old 
AND  lf.cust_id = cus.cust_id(+) 

을 내가 알고있는 (+) 조인에 대한 이전 구문이지만, 나는 실제로이 쿼리에 무엇을하고 있는지 모르겠습니다. 누군가가 이것을 설명하고 더 현대의 조인 구문을 사용하여 where 문에서 (+)없이이 쿼리를 표시 할 수 있습니까?

+0

'(+)'는 'OUTER JOIN'또는 'LEFT JOIN'에 대한 오래된 구문입니다. 마스터 테이블 (더하기 기호가없는 레코드)과 세부 테이블의 모든 일치 레코드 (더하기 기호가있는 레코드)를 모두 유지합니다. – sagi

+0

고마워요! 많이 도왔습니다 – SJR59

답변

1

난 당신이 원하는 생각 :

select * 
from find fsc join 
    let lf 
    on fsc.id = lf.id join 
    STRIKE ist 
    on ist.ID_old = fsc.ID_old left join 
    cust cus 
    on lf.cust_id = cus.cust_id; 

는 솔직히 말해서, 외부 조인 아마 필요가 없습니다. lfcust_id이있는 이유는 무엇입니까? 값이 NULL 인 경우 유일한 합리적인 가능성이 있습니다.

+0

고마워요! 많은 도움이되었다. – SJR59