ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JOIN (INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN)
    DB 2021. 8. 20. 18:49

    join이란?

    두개 이상의 테이블을 연결해서 데이터를 검색하는 방법이다.

    연결하기 위해선 테이블들이 적어도 하나의 칼럼을 공유하고 있어야하고,

    이 공유하고 있는 컬럼을 PK 또는 FK값으로 사용해야한다.

     

     

     

    우선 2가지의 테이블을 생성해보았다.

     

     

     

    inner join

    SELECT
    테이블별칭.조회할칼럼,
    테이블별칭.조회할칼럼
    FROM 기준테이블 별칭
    INNER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키;

     

     

     

    left join

     

     

     

    SELECT
    테이블별칭.조회할칼럼,
    테이블별칭.조회할칼럼
    FROM 기준테이블 별칭
    LEFT OUTER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키;

     

     

    SELECT
    테이블별칭.조회할칼럼,
    테이블별칭.조회할칼럼
    FROM 기준테이블 별칭
    LEFT OUTER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키
    WHERE 조인테이블별칭.기준키 IS NULL;

     

    right join

    SELECT
    테이블별칭.조회할칼럼,
    테이블별칭.조회할칼럼
    FROM 기준테이블 별칭
    RIGHT OUTER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키;

     

     

     

    SELECT
    테이블별칭.조회할칼럼,
    테이블별칭.조회할칼럼
    FROM 기준테이블 별칭
    RIGHT OUTER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키
    WHERE 기준테이블 별칭 IS NULL;

     

     

    full outer join

     

    SELECT
    테이블별칭.조회할칼럼,
    테이블별칭.조회할칼럼
    FROM 기준테이블 별칭
    FULL OUTER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키 .....;

     

    but!! Mysql 에선 지원하지 않기때문에 union 방식으로 해결한다.

    SELECT * FROM 기준테이블 별칭 LEFT JOIN 조인테이블 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키
    UNION
    SELECT * FROM 기준테이블 별칭 RIGHT JOIN 조인테이블 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키
    WHERE 기준테이블별칭.기준키 IS NULL;

    728x90
    반응형

    댓글

Designed by Tistory.