본문 바로가기
DB/MySQL

Join 알아보기

by 애기 개발자 2023. 9. 12.
반응형

기본적으로 Join은 두 테이블의 관계를 엮어주는 명령어이다.

 

크게 4가지로

 

  • INNER JOIN (내부 조인): 두 테이블을 JOIN 할 때 두 테이블에 모두 지정한 컬럼이 있어야 함
  • OUTER JOIN (외부 조인): 두 테이블을 JOIN 할 때, 한쪽의 테이블에 데이터가 있어도 결과가 나옴
  • CROSS JOIN (상호 조인): 한 테이블과 다른 테이블의 모든 행을 조인함
  • SELF JOIN (셀프 조인): 자신이 자신과 JOIN, 1개의 테이블만 사용함.  

 

INNER JOIN

주로 가장 많이 사용

 

SELECT <컬럼 명> FROM <TABLE1> INNER JOIN <TABLE2> ON <JOIN 조건>

위와 같이 사용되며 INNER JOIN에서 INNER는 생략이 가능하다.

즉,

SELECT <컬럼 명> FROM <TABLE1> JOIN <TABLE2> ON <JOIN 조건>

위와 같이 사용해도 INNER JOIN으로 취급한다.

 

한마디로, 교집합이 되는 컬럼을 갖고 있으면 쓸 수 있다.

OUTER JOIN

 

SELECT <컬럼 명> FROM <TABLE1 (LEFT 테이블)>
	<LEFT, RIGHT, FULL> OUTER JOIN <TABLE2 (RIGHT 테이블)>
    ON <조인 조건> WHERE ...

여기서 LEFT, RIGHT, FULL에 대해서 알아보면

 

  • LEFT OUTER JOIN: 왼쪽 테이블의 모든 값이 출력
  • RIGHT OUTER JOIN: 오른쪽 테이블의 모든 값이 출력
  • FULL OUTER JOIN:  두 테이블 모든 값이 출력

 

여기서 교집합을 뺀 차집합으로 알아보고자 한다면

각 반대되는 컬럼 값의 NULL을 찾으면 차집합이 된다.

 

 

CROSS JOIN

두 테이블을 모두 조인시키는 명령어로

테이블을 단순히 호출시킨 카티션 프로덕트(CARTESIAN PRODUCT) 연산과 같다.

 

SELECT * FROM <TABLE1> CROSS JOIN <TABLE2>

출력하면 TABLE1과 TABLE2의 모든 값을 출력한다.

 

SELF JOIN

셀프 조인은 자기 자신과 JOIN 하므로 한 개의 테이블만 사용한다.

 

SELECT <컬럼 명> FROM <TABLE1> AS A INNER JOIN <TABLE1> AS B WHERE ...

위와 같이 사용할 수 있다.

 


이미지 출처

https://hongong.hanbit.co.kr/sql-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95-joininner-outer-cross-self-join/

 

SQL 기본 문법: JOIN(INNER, OUTER, CROSS, SELF JOIN)

조인은 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것을 말한다. INNER JOIN(내부 조인)은 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다.OUTER JOIN(외부

hongong.hanbit.co.kr

 

 

반응형

댓글