반응형
SQL 서버에서는 모든 데이터를 한 테이블에 저장하지 않고 데이터의 속성별로 분리하여 관리한다. 따라서 여러 테이블에 걸쳐 연결된 데이터를 보기 위해선 합쳐주는 작업이 필요하다. 그 기능이 바로 JOIN 이다.
01. INNER JOIN
각 테이블이 갖고 있는 공통 데이터를 기준으로 테이블을 매칭시킨다.
SELECT A.COL01, A.COMMON_COL
FROM TABLE01 A
INNER JOIN TABLE02 B ON A.COMMON_COL = B.COMMON_COL
;
COMMON_COL은 두 테이블이 공통으로 갖고 있는 칼럼이름이다. INNER JOIN 다음에 매칭시킬 테이블 이름을 써주고 ON 뒤에 양 테이블의 어떤 칼럼들이 같은지를 표시해준다.
02. JOIN 특징
INNER JOIN은 JOIN 기능의 기본 기능으로 INNER를 생략하고 사용해도 된다. 다시 말해서 JOIN의 기본값은 INNER JOIN이다.
SELECT A.COL01, A.COMMON_COL
FROM TABLE01 A
INNER JOIN TABLE02 B ON A.COMMON_COL = B.COMMON_COL
;
SELECT A.COL01, A.COMMON_COL
FROM TABLE01 A
JOIN TABLE02 B ON A.COMMON_COL = B.COMMON_COL
;
위의 두 쿼리는 정확히 일치한다.
JOIN은 여러번 사용이 가능하다.
SELECT A.COL01, A.COMMON_COL01, A.COMMON_COL02
FROM TABLE01 A
JOIN TABLE02 B ON A.COMMON_COL01 = B.COMMON_COL01
JOIN TABLE03 C ON A.COMMON_COL02 = C.COMMON_COL01
;
03. OUTER JOIN
두 가지 테이블을 붙일 때 양 쪽 데이터가 모두 존재 하지 않을 때가 있다. 이럴 때 한쪽 데이터는 모두 보여주고 다른 쪽은 매칭되는 것이 있을 때만 보여주는 방식이 OUTER JOIN방식이다. 이 때 메인 테이블을 기준으로 할 지 JOIN으로 매칭시키는 테이블을 기준으로 할지를 LEFT (왼쪽)과 RIGHT (오른쪽)으로 구분해 준다.
메인 쿼리의 테이블이 기준 일 경우 | JOIN으로 매칭시키는 테이블이 기준 일 경우 |
LEFT JOIN | RIGHT JOIN |
SELECT A.COL01, A.COMMON_COL
FROM TABLE01 A
LEFT JOIN TABLE02 B ON A.COMMON_COL = B.COMMON_COL
;
SELECT A.COL01, A.COMMON_COL
FROM TABLE01 A
RIGHT JOIN TABLE02 B ON A.COMMON_COL = B.COMMON_COL
;
반응형
'ICT > SQL' 카테고리의 다른 글
SQL 문법 | 데이터 조회 및 필터 | SELF JOIN (0) | 2021.09.07 |
---|---|
[SQL] 국가공인 SQL 개발자 및 전문가 자격시험 정보 (0) | 2021.08.30 |
SQL 문법 | 데이터 조회 및 필터 | SUBQUERY (0) | 2021.08.29 |
SQL 문법 | 데이터 조회 및 필터 | ALIAS (0) | 2021.08.28 |
SQL 문법 | 데이터 조회 및 필터 | WHERE IS NULL (0) | 2021.08.28 |
댓글