SQL/MySQL

MySQL 다중 내부 조인(INNER JOIN 여러 개) 문법, 예시

진리뷰 2023. 9. 14. 09:00
반응형

 

 

MySQL-다중-내부-조인-INNER-JOIN-여러-개-문법-예시-썸네일
다중 내부 조인 문법

 

 

이 글은 MySQL 다중 내부 조인(INNER JOIN 여러개) 설명, 문법, 예시를 담고 있습니다.

 

 

MySQL INNER JOIN(내부 조인)

 

제 JOIN 글에서 두 개 이상, 여러 테이블을 결합하는 것이 조인이라고 했습니다.

그중 INNER JOIN은 교집합을 의미하며, 테이블들 간 교집합을 기준으로 한 테이블처럼 결합됩니다.

MySQL-내부-조인-INNER-JOIN-교집합
INNER JOIN 교집합 결합

 

 

*관련 글

MySQL INNER JOIN(내부 조인) 다양한 사용 방법과 예시

MySQL 관계형 데이터베이스(RDB), 테이블 JOIN 기초 설명 예시

 

 

MySQL 다중 내부 조인(INNER JOIN 여러 개)

 

그렇다면 다중 내부 조인은 어떻게 되는 것일까요?

먼저 A와 B테이블의 공통키(교집합)를 바탕으로 결합하여,

두 테이블의 데이터를 한 번에 보여주는 하나의 테이블(C)이 생깁니다.

MySQL-INNER-JOIN-여러개-설명
INNER JOIN 테이블 2개 산출물

 

 

이후 A, B와 공통키를 갖는 세 번째 테이블 D를 결합 산출물 C와 결합합니다.

이로써 공통키를 중심으로, A+B+D인 하나의 테이블이 최종 산출물로 보입니다.

물론 최종 산출물(A+B+D)만 보일 뿐, 설명드린 과정이 눈에 보이지는 않습니다.

MySQL-다중-내부-조인-INNER-JOIN-여러개-설명
INNER JON 테이블 3개

 

 

다중 내부 조인(INNER JOIN 여러 개) 문법

 

다중 내부 조인 문법은 다음처럼 INNER JOIN ON... INNER JOIN ON...으로 입력합니다.

이로써 3개, 4개... 여러 개의 테이블 결합이 가능합니다.

SELECT * FROM 테이블1
INNER JOIN 테이블2
ON 테이블1.공통키=테이블2.공통키
INNER JOIN 테이블3
ON 테이블1.공통키=테이블3.공통키;

 

WHERE 조건절에 AND를 입력해서 여러 테이블 결합도 가능합니다.

SELECT *
FROM 테이블1, 테이블2, 테이블3
WHERE 테이블1.공통키=테이블2.공통키 AND 테이블1.공통키=테이블3.공통키;

 

별칭도 쓸 수도 있습니다. 이는 AS 입력 혹은 띄어쓰기로 가능합니다.

참고로 3번째 테이블 내부 조인 시 '테이블1.공통키=테이블3.공통키' 뿐만 아니라,

'테이블2.공통키=테이블3.공통키'도 쓸 수 있습니다.

SELECT * FROM 테이블1 별칭1
INNER JOIN 테이블2 AS 별칭2
ON 별칭1.공통키=별칭2.공통키
INNER JOIN 테이블3 별칭3
ON 별칭2. 공통키=별칭3.공통키;

 

 

다중 내부 조인 예시

 

공통키(ID)를 갖는 세 개의 테이블(연락처, 주소, 제품주문번호)이 있습니다.

또한 두 테이블(주소, 제품주문번호)은 '주소2'도 공통으로 가집니다.

연락처
ID 번호
10 01011112222
52 01033334444

 

주소
ID 주소1 주소2
10 서울시 종로구 12345
52 고양시 덕양구 52431
827 서울시 강남구 67891

 

제품주문번호
ID 주문번호 주소2
10 F1 12345
52 F9 52431
827 F9 67891

 

SELECT a.ID, a.번호, b.주소1, b.주소2, c.주문번호
FROM 연락처 a
INNER JOIN 주소 b ON a.ID = b.ID
INNER JOIN 주문번호 c ON b.주소2 = c.주소2;
SELECT a.ID, a.번호, b.주소1, b.주소2, c주문번호
FROM 연락처 a, 주소 b, 주문번호 c
WHERE a.ID = b.ID AND b.주소2 = c.주소2;

 

산출물은 다음과 같습니다.

ID 번호 주소1 주소2 주문번호
10 01011112222 서울시 종로구 12345 F1
52 01033334444 고양시 덕양구 52431 F9

 

반응형
top