DB

JOIN (INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN)

인디아나쥰이 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
반응형