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
반응형