SQL JOIN 총정리 (inner/left/right/outer)

Devel/DB_SQL|2022. 1. 12. 16:37
반응형

join이란?

 

sql에서 지원하는 join의 종류는 정말 다양하다.

sql join은 두개 이상의 table을 연결하여 데이터를 조회하는 방법이다.

연결하는 테이블들이 하나의 컬럼 이상을 공유하고 있어야한다. (공유되고 있는 컬럼을 PK, FK값으로 사용)

 

INNER JOIN

 

INNER JOIN은 내부조인으로 교집합을 의미한다.

공통된 부분만 조회한다.

 

LEFT/RIGHT JOIN

 

LEFT/RIGHT JOIN은 공통적인 부분과 

LEFT은 부분 집합으로 조인 기준 왼쪽의 table을 모두 select,

RIGHT은 조인 기준 오른쪽의 table을 모두 select한다.

 

LEFT JOIN

 

LEFT JOIN에서 만약에, 교집합 제외 조인 기준 왼쪽 table만 조회하고 싶을때는,

SELECT A.ID, A.name, A.dept
FROM A LEFT OUTER JOIN B
ON A.ID = B.ID
WHERE B.ID IS NULL;

A는 왼쪽으로, B의 key를 NULL로 설정하면 된다.

 

RIGHT JOIN

 

RIGHT JOIN에서 반대로 교집합 제외 조인 기준 오른쪽 table만 조회하고 싶을때는,

SELECT A.ID, A.name, A.dept
FROM A RIGHT OUTER JOIN B
ON A.ID = B.ID
WHERE A.ID IS NULL;

B를 right join, 교집합을 제외하기 위해서 A 테이블의 key를 NULL 설정한다.

 

OUTER JOIN

 

OUTER JOIN은 외부조인으로 A테이블, B테이블 모두를 조회하는 합집합을 의미한다.

SELECT A.ID, A.name, A.dept
FROM A FULL OUTER JOIN B
ON A.ID = B.ID;

 

댓글()
loading