준준의 기록일지

[SQL] INNER JOIN, OUTER JOIN, ON, WHERE 본문

Database

[SQL] INNER JOIN, OUTER JOIN, ON, WHERE

junjunwon 2020. 10. 27. 14:11

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."




조인

- 두개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법.

- 보통 Primary Key 혹은 Foreign Key로 두 테이블을 연결한다.

- 테이블을 연결하려면 적어도 하나의 컬럼은 서로 공유되고 있어야 한다.

 

INNER JOIN

- 교집합으로 기준테이블과 join한 테이블의 중복된 값을 보여준다.

- 문법

SELECT 테이블별칭.조회할컬럼, 테이블별칭.조회할컬럼

FROM 기준테이블 별칭

INNER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준치=조인테이블별칭.기준키.

 

OUTER JOIN

- 매칭 뿐만 아니라 미매칭 데이터도 함께 조회한다.

 

LEFT OUTER JOIN

- 기준테이블의 값 + 테이블과 기준테이블의 중복된 값을 보여준다.

- 문법

SELECT 테이블별칭.조회할컬럼, 테이블별칭.조회할컬럼

FROM 기준테이블 별칭

LEFT OUTER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준치=조인테이블별칭.기준키.

 

- 추가적으로 테이블 A에만 존재하는 코드를 조회할때는?

SELECT *

FROM A LEFT OUTER JOIN B ON A.CODE=B.CODE

WHERE B.CODE IS NULL

 

 

RIGHT OUTER JOIN

- LEFT OUTER JOIN의 반대

- 오른쪽 테이블(조인테이블)을 기준으로 JOIN하는 것.

- B테이블의 모든 데이터와 A테이블과 B테이블의 중복된 값이 검색된다.

- 문법

SELECT 테이블별칭.조회할컬럼, 테이블별칭.조회할컬럼

FROM 기준테이블 별칭

RIGHT OUTER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준치=조인테이블별칭.기준키.

 

 

FULL OUTER JOIN

- 합집합

- A테이블, B테이블이 가지고 있는 모든 데이터가 검색된다.(사실상 기준테이블의 의미가 없음)

- 문법

SELECT 테이블별칭.조회할컬럼, 테이블별칭.조회할컬럼

FROM 기준테이블 별칭

FULL OUTER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준치=조인테이블별칭.기준키.

 

-  만약 A테이블과 B테이블 매칭이 안되는 나머지를 모두 조회하는 경우에는?

SELECT *

FROM A FULL OUTER JOIN B ON A.CODE = B.CODE

WHERE A.CODE IS NULL OR B.CODE IS NULL

 

CROSS JOIN

- 모든 경우의 수를 전부 표현해주는 방식

- 기준테이블이 A일 경우 A 데이터의 한 ROW를 B테이블 전체와 JOIN하는 방식이다.

- 그러므로 결과값의 경우의 수는 N * M이 된다.

- 위 그림을 보면 A테이블에 데이터가 3개, B테이블에 데이터가 4개 있어 총 12개가 검색된다.

- 첫번째 문법

SELECT 테이블별칭.조회할컬럼, 테이블별칭.조회할컬럼

FROM 기준테이블 별칭

CROSS JOIN 조인테이블 별칭

 

- 두번째 문법

SELECT 테이블별칭.조회할컬럼, 테이블별칭.조회할컬럼

FROM 기준테이블 별칭, 조인테이블 별칭

 

SELF JOIN

- 자기자신과 자기자신을 조인

- 하나의 테이블을 여러번 복사해서 존인하는데, 자신이 가지고 있는 컬럼을 다양하게 변형시켜 활용할 경우 자주 사용한다.

- 문법

SELECT 테이블별칭.조회할컬럼, 테이블별칭.조회할컬럼

FROM 테이블 별칭, 테이블 별칭2

 

출처

coding-factory.tistory.com/87

 

[MSSQL] JOIN의 종류설명 및 사용법 & 예제

조인이란? 두개이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법입니다. 자신이 검색하고 싶은 컬럼이 다른 테이블에 있을경우 주로 사용하며 여러개의 테이블을 마치 하나

coding-factory.tistory.com

m.blog.naver.com/PostView.nhn?blogId=wideeyed&logNo=221435077767&proxyReferer=https:%2F%2Fwww.google.com%2F

 

[MSSQL] 조인(Inner Join, Outer Join)

조인(Join)이란 2개 이상 테이블을 서로 엮어 조회하는 것이다.​Inner Join은 서로 매칭되는 것만 엮어...

blog.naver.com

 

'Database' 카테고리의 다른 글

[mssql] update select 동시 작업  (0) 2020.11.02
[mssql] trigger  (0) 2020.10.27
[MSSQL] 테이블 복사 (구조, 데이터)  (0) 2020.10.27
[MSSQL] DECLARE, BEGIN-END 문  (0) 2020.10.27
[sql쿼리] create, select, alter, insert  (0) 2020.08.13