문제
사원의 관리자와 차상위관리자를 함께 출력하는 쿼리문으로 옳은 것은?
① 사원 A LEFT OUTER JOIN 관리자 B ON A.MGR_ID = B.EMP_ID LEFT OUTER JOIN 차상위관리자 C ON B.MGR_ID = C.EMP_ID ② 사원 A LEFT OUTER JOIN 관리자 B ON A.EMP_ID = B.EMP_ID LEFT OUTER JOIN 차상위관리자 C ON A.MGR_ID = C.MGR_ID ③ 사원 A LEFT OUTER JOIN 관리자 B ON A.EMP_ID = B.MGR_ID LEFT OUTER JOIN 차상위관리자 C ON B.EMP_ID = C.MGR_ID ④ 사원 A LEFT OUTER JOIN 관리자 B ON A.EMP_ID = B.EMP_ID LEFT OUTER JOIN 차상위관리자 C ON B.EMP_ID = C.EMP_ID
정답
1번
해설
정답: 1. 사원의 관리자 정보를 찾으려면 A.MGR_ID = B.EMP_ID로 조인하고, 관리자의 상위 관리자는 B.MGR_ID = C.EMP_ID로 다시 조인해야 한다.
오답 풀이
- 1번: 사원→관리자→차상위관리자 관계를 올바르게 따라간다.
- 2번: 사원번호와 관리자 사원번호를 같은 값으로 비교해 관리자 관계를 찾지 못한다.
- 3번: A.EMP_ID = B.MGR_ID는 사원의 부하 직원을 찾는 방향이다.
- 4번: 동일 사원번호끼리 조인하므로 관리자 계층을 표현하지 못한다.
보충 개념 조직도처럼 한 테이블 안에서 계층 관계를 표현할 때 셀프조인을 사용한다. 사원번호와 관리자번호의 방향을 정확히 구분해야 한다.