MSSQL

MSSQL - JOIN정리(LEFT JOIN, INNER JOIN)

깐까망 2024. 3. 21. 18:05
728x90
반응형
SMALL

▶ JOIN 정의

. 검색을 할때 테이블을 한개씩 검색을 하게 되면 효율이 좋치 않다고 생각한다.

. 효율을 위해서 여러테이블중 컬럼명이 같은 테이블끼리 비교를 하여 검색을 할 수 있다.

. 컬럼명과 데이터가 같으면 여러개 테이블의 데이터를 검색을 할 수 있다.

출처 https://stackoverflow.com/questions/53949197/isnt-sql-a-left-join-b-just-a

 

Isn't SQL A left join B, just A?

I was looking at a few graphs to understand the difference between the joins, and I came across this image: Maybe the problem is in representing this with Venn Diagrams. But looking at the first j...

stackoverflow.com

 

▷ LEFT (OUTER) JOIN

https://alstn4973.tistory.com/151 에 있는 EMP 테이블 DEPT 테이블을 가지고 예제를 하겠습니다.

- 기본 문법

SELECT *
FROM 테이블1 A(명칭) 
LEFT JOIN 테이블2 B(명칭) ON A.컬럼명=B.컬럼명

 

. EMP 테이블과 dept 테이블을 검색을 하면

SELECT * 
FROM EMP A
LEFT JOIN dept B ON A.deptno = B.deptno

 

 

. LEFT JOIN은 두개의 테이블에 관하여 비교한 A.deptno = B.deptno에 해당하는 모든 데이터가 나옵니다.

 

▷ INNER JOIN

- 기본 문법

SELECT *
FROM 테이블1 A(명칭) 
INNER JOIN 테이블2 B(명칭) ON A.컬럼명=B.컬럼명

 

. INNER JOIN은 교집합이라고 생각을 하면 됩니다. 비교하는 데이터가 있어야지만 반드시 데이터가 나오며 없는 경우는 제외되어 데이터가 나옵니다.

. 두개 테이블을 비교한 데이터가 반드시 같아야지 나오는 데이터라고 생각하면 됩니다.

 

- 두개 테이블의 조건을 넣어 원하는 데이터를 검색할 수가 있습니다. 

SELECT * 
FROM EMP A
INNER JOIN dept B ON A.deptno = B.deptno
where A.empno = '20'

 

. 테이블이 여러개로 조인을 할 수 있어 테이블을 지정하여 원하는 데이터의 조건을 걸어 검색을 할 수 있습니다.

 

728x90
반응형
LIST