반응형
    
    
    
  
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 | 
 
										
									![[SQL] 국가공인 SQL 개발자 및 전문가 자격시험 정보](http://i1.daumcdn.net/thumb/C176x120/?fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FCW2dh%2FbtrdC4WstOC%2FAAAAAAAAAAAAAAAAAAAAAI9DZ75Pwh5e-Z6XikU9QGOVgtb8e18WEGMA-peHkpT5%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DVLv7byrEJjhN7e08ewDlyUIp9Zo%253D) 
										
									 
										
									 
										
									
댓글