본문 바로가기

.주제별/SQL,DB

SQL) Inner Join과 Left Join의 차이

참고 : 1) MySQL 커뮤니티 존 참고

           2) 오라클 #14 표준 JOIN

 

모든 부서에 대해, 부서번호/ 부서이름/부서의 사원 이름을 조회

* Natural(Inner) Join

SELECT D.deptno, D.dname, E.ename

    FROM dept D, emp E

    WHERE D.deptno = E.deptno

* Left Join

     Outer Join

SELECT D.deptno, D.dname, E.ename

    FROM dept D LEFT JOIN emp E

    ON D.deptno = E.deptno

    Self Join ( 모든 사원의 사원 이름과 그 사원의 상사 이름을 조회)

SELECT E.ename emp_name, M.ename manager_name

     FROM emp E LEFT Join emp M

     ON E.mgr = M.empno

둘의 차이는 무엇일까요?

가장 큰 차이점은, 조건에 맞지 않는 경우도 결과를 리턴의 유무이다.

즉, Inner Join의 경우는 결과값만 리턴하는데 반해

      Left(Outer) Join의 경우는, 결과값이 없으면 Null을 리턴한다.