[다중조인] 다중 조인 시, (+) 기입 여부 질문 0 2 602

by 부산광어 [2020.05.19 14:07:11]


스키마.PNG (91,024Bytes)

--9. 사원의 부서가 속한 도시(city)가 ‘Seattle’인 사원의 이름, 해당 사원의 매니저 이름, 사원 의 부서이름을 출력하시오. 
--   이때 사원의 매니저가 없을 경우 ‘<없음>’이라고 출력하시오. 이름은 last_name만 출력하며, 
--   사원의 이름을 오름차순으로 정렬하시오. 

SELECT e1.last_name, nvl(e2.last_name,'<없음>'), d.department_name
FROM EMPLOYEES e1, EMPLOYEES e2, LOCATIONS l, DEPARTMENTS d
WHERE e1.manager_id = e2.employee_id (+)
AND e1.department_id = d.department_id (1)
AND d.location_id = l.location_id
AND l.city = 'Seattle'
ORDER BY 1;

아래 스키마를 기준으로 작성한 문제에 대한 쿼리문입니다. 저번 질문과 비슷하게, 다중 조인에 대한 이해가 완전히 되어있지 않은 것 같습니다. 만약 (1)의 자리에 (+)가 존재한다면, 포괄 조인의 형식이 되어 오류가 나는 것으로 알고 있는데, 위의 상황에서는 그러지 않아서 또 당황스럽습니다. 

또한, (1)번 위치 +을 제외한 쿼리문이 올바른 답안이 맞는지 궁금합니다. SQL PLUS로 답안을 돌렸을 때는 정상적으로 출력이 되는데, 답이 맞는지 맞지 않는지는 알 수가 없었습니다ㅠ

 

 

by 마농 [2020.05.19 14:39:03]

아우터 조인의 필요여부는 업무적인 필요에 의해서 결정되는 것입니다.
사원의 부서코드는 부서를 참조하므로.
부서가 없는 사원이 존재할 수 없다면? 아우터 조인은 불필요합니다.
부서가 없는 사원이 존재할 수 있다면? 아우터 조인이 필요하겠지요.
즉, 필요하다면 하시면 됩니다. 불필요하면 빼셔야 하구요.
그 위치에 (+) 붙인다고 에러는 아닙니다. 이게 왜 에러라고 생각하는지?
아직도 아우터 조인을 이해 못하신 듯.


by 부산광어 [2020.05.19 16:38:09]

http://www.gurubee.net/article/82941

저번에 질문하였던 포괄질문과 헷갈렸던 것 같습니다 ㅠㅠ

죄송합니다.. 확실히 이해하고 가겠습니다

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입