MySQL - JOIN

진경천·2024년 10월 12일

2개 이상의 테이블을 합치는데 사용한다.
기본적으로 아래와 같은 형식을 가진다.

JOIN [테이블] ON [조건]

ON VS WHERE
ON의 조건은 JOIN을 하기 전 필터링하고, WHERE의 조건은 JOIN을 한 후에 필터링한다.

INNER JOIN

조건에 맞는 테이블만 출력하고 싶을 때 사용한다.
두 테이블간의 교집합 개념

SELECT [컬럼]
FROM [테이블A] JOIN [테이블B]
ON [조건]

ON절의 조건에 맞는 행을 A와 B테이블을 붙여서 조회한다.
흔히 쓰는 조건은 A.[컬럼] = B.[컬럼]

USING 조건절

SELECT *
FROM [테이블A] JOIN [테이블B]
USING ([컬럼]);

같은 이름을 가진 컬럼들 중 원하는 컬럼만 선택적 등가 조인 가능
A와 B테이블에서 USING의 컬럼이 같은 것들만 조인

⚠️ SQL SERVER에서 지원 안함

CROSS JOIN

SELECT *
FROM A
/*CROSS*/ JOIN B

JOIN 조건이 없는 경우 발생할 수 있는 모든 데이터의 조합을 조회
쉽게 말해 조건 없는 조인

OUTER JOIN

조건에 맞지 않아도 테이블을 출력하고 싶을 때 사용한다.

출처

LEFT JOIN

SELECT [컬럼]
FROM [테이블A]
LEFT JOIN [테이블B]
ON [조건]

A를 모두 출력하고 B에서는 조건에 맞는 경우만 조인

RIGHT JOIN

SELECT [컬럼]
FROM [테이블A]
RIGHT JOIN [테이블B]
ON [조건]

B를 모두 출력하고 A에서 B와 동일한 값이 있는 경우만 출력

FULL OUTER JOIN

SELECT [컬럼]
FROM A
JOIN B
ON [조건]

조건에 맞는 튜플을 조인하되, 조건에 맞지 않는 튜플 또한 조회된다.

  • 합집합 개념

⚠️ MariaDB에서 지원 안함

3개 이상의 테이블 조인

SELECT [컬럼]
FROM A
JOIN B ON [조건]
JOIN C ON [조건]
JOIN D ON [조건]

간단하게 조인과 조건등을 추가해주면 된다.

profile
어중이떠중이

0개의 댓글