본문 바로가기

하루 30분 SQL 공부하기

[SQL] JOIN 테이블 결합하기 기본

SQL에서는 JOIN을 사용해서 두 개의 테이블을 합칠 수 있다.   join을 하기 위해서는 두 테이블이 기본키(Primary key, PK)와 외래키(Foreign key, FK)관계여야 한다. 이것을 일대다 관계라고 한다. 

 

JOIN의 종류

JOIN에는 INNER JOIN, OUTER JOIN, CROSS JOIN, SELF JOIN이 있다. 

INNCEWR JOIN(내부 조인) : 두 테이블을 JOIN 할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다. 

OUTER JOIN(외부 조인): 두 테이블을 JOIN할 때, 1개의 테이블에만 데이터가 있어도 결과가 나온다. 
CROSS JOIN(상호 조인): 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 JOIN하는 기능이다. 
SELF JOIN(자체 조인): 자신이 자신과 JOIN하는 의미로 1개의 테이블을 사용한다. 

 

INNER JOIN(내부조인)

테이블을 연결할 때 가장 많이 사용하는 조인으로 두 테이블에 같은 열이 있을 때 사용 가능하다. 

SELECT COlUM 
FROM First_Table
	INNER JOIN Second_Table
    ON Join_Conditions

 

 

OUTER JOIN (외부조인) 

외부조인은 내부조인과 달리 한쪽만 데이터가 있어도 결합이 가능하다. 

SELECT Coumn_name
FROM First_Table(LEFT Tabel)
	<LEFT | RIGHT | FULL> OUTER JOIN Second_Table(Right Table)
    ON JOIN_CONDITIONS

 

OUTER JOIN 의 종류 

  • LEFT OUTER JOIN  : 왼쪽 테이블의 모든 값이 출력
  • RIGHT OUTER JOIN : 오른쪽 테이블의 모든 값이 출력
  • FULL OUTER JOIN : 왼쪽 외부 조인과 오른쪽 외부 조인이 합쳐진 것 

 

 

CROSS JOIN (상호조인) 

한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인시키는 기능이다. 상호 조인 결과의 전체 행 개수는 두 테이블의 각 행의 개수를 곱한 수만큼 된다. 카티션 곱이라고도 한다. 

 

SELECT * 
FORM First_Table
	CROSS JOIN Second_Table

 

 

SELF JOIN (자체조인) 

SELF JOIN은 자기 자신과 JOIN 하는 것으로 1개의 테이블을 사용한다. 

SELECT Colum_name
FROM TABlE_NAME NICKNAME_A
	INNER JOIN TABlE_NAME NICKNAME_B

 

관련된 문제 

조건에 부합하는 부동산 중고거래 댓글 조회하기 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

업그레이드 된 아이템 구하기 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

refernce

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