by 권희성 [2020.11.25 23:16:03]
안녕하세요 혼자 공부하다가 모르는게 생겼는데 여쭤볼 곳이 없어 여기에 여쭤봅니다 ㅠ
오라클 scott계정의 emp, dept 테이블을 이용한 equi join에 outer join 문제인데요
문제 : 모든 사원명(ename)과 담당 매니저 명(ename) 검색, 단 매니저가 없는 사원도 검색되어야 함!
답은 SELECT M.ENAME 사원명, M.ENAME 매니저명
FROM EMP E, EMP M
WHERE E.MGR=M.EMPNO(+);
근데 헷갈리는 것은 empno는 null값이 없고, mgr엔 king이란 사람이 mgr에서 null값을 가집니다
제가 배우기론 outer join에서 (+)사용시 붙이는 위치가 null있어서 부족한 테이블쪽에 붙이는걸로 배웠는데
이 논리대로면 mgr에 null이 있으므로 위에 조건문 부분이 where e.mgr(+) = m.empno; 로 되야하는거 아닌가요?
위의 답대로하면 매니저 없는 king도 같이 출력되는데 제가 생각한대로 바꿔서 출력하니 king이 안뜨더라구요 왜 null있는쪽이 아닌곳에 (+)인건지 자세히 설명좀 부탁드려도 될까요?