SQL에서 자주 사용되는 조인(JOIN) 쉽게 이해하기!

데이터 분석을 하다 보면 여러 개의 테이블을 합쳐야 할 일이 많습니다. 이때 사용하는 것이 조인(JOIN) 입니다. SQL의 조인은 하나 이상의 테이블을 연결하여 원하는 데이터를 조회할 수 있도록 도와줍니다. 이번 포스팅에서는 비개발자도 쉽게 이해할 수 있도록 SQL 조인 개념과 예제를 함께 살펴보겠습니다! 😊


1. SQL 조인이란?

조인(JOIN) 은 두 개 이상의 테이블을 특정한 조건을 기준으로 결합하는 방법입니다. 데이터베이스에서는 하나의 테이블에 모든 데이터를 저장하는 것이 아니라, 여러 개의 테이블로 나누어 관리합니다. 따라서 필요한 데이터를 가져오기 위해서는 조인을 사용해야 합니다.

📌 예제 데이터 소개

먼저, 두 개의 테이블을 예제로 사용해 보겠습니다.

고객(Customer) 테이블

customer_idnameage
1철수25
2영희30
3민수28
4지수22

주문(Order) 테이블

order_idcustomer_idproduct
1011노트북
1022스마트폰
1031마우스
1043키보드

이제 위의 데이터를 활용하여 각 조인 방식별로 설명하겠습니다! 🚀


2. 조인의 종류와 예제

1️⃣ INNER JOIN (내부 조인)

공통된 데이터만 조회하는 방식입니다. 즉, 두 테이블에서 일치하는 데이터만 가져옵니다.

SELECT c.customer_id, c.name, o.order_id, o.product
FROM Customer c
INNER JOIN Order o ON c.customer_id = o.customer_id;

결과

customer_idnameorder_idproduct
1철수101노트북
1철수103마우스
2영희102스마트폰
3민수104키보드

🔹 고객 테이블과 주문 테이블에서 customer_id가 일치하는 경우만 가져옵니다.


2️⃣ LEFT JOIN (왼쪽 조인)

왼쪽 테이블(Customer)의 모든 데이터를 가져오고, 오른쪽 테이블(Order)에 해당하는 데이터가 없으면 NULL을 반환합니다.

SELECT c.customer_id, c.name, o.order_id, o.product
FROM Customer c
LEFT JOIN Order o ON c.customer_id = o.customer_id;

결과

customer_idnameorder_idproduct
1철수101노트북
1철수103마우스
2영희102스마트폰
3민수104키보드
4지수NULLNULL

🔹 customer_id = 4 (지수)는 주문한 적이 없으므로 order_idproduct 값이 NULL로 표시됩니다.


3️⃣ RIGHT JOIN (오른쪽 조인)

오른쪽 테이블(Order)의 모든 데이터를 가져오고, 왼쪽 테이블(Customer)에 해당하는 데이터가 없으면 NULL을 반환합니다.

SELECT c.customer_id, c.name, o.order_id, o.product
FROM Customer c
RIGHT JOIN Order o ON c.customer_id = o.customer_id;

결과 (이번 예제에서는 RIGHT JOIN과 INNER JOIN이 동일한 결과를 가짐)

customer_idnameorder_idproduct
1철수101노트북
1철수103마우스
2영희102스마트폰
3민수104키보드

🔹 이 예제에서는 주문(Order) 테이블에 있는 모든 데이터가 고객(Customer) 테이블에 연결되므로 결과가 INNER JOIN과 동일합니다.


4️⃣ FULL OUTER JOIN (완전 외부 조인)

두 테이블의 모든 데이터를 가져오고, 일치하는 데이터가 없는 경우 NULL을 반환합니다. (MySQL에서는 FULL OUTER JOIN이 직접 지원되지 않으며, UNION을 사용하여 구현해야 합니다.)

SELECT c.customer_id, c.name, o.order_id, o.product
FROM Customer c
FULL OUTER JOIN Order o ON c.customer_id = o.customer_id;

결과 (FULL OUTER JOIN을 사용한 경우)

customer_idnameorder_idproduct
1철수101노트북
1철수103마우스
2영희102스마트폰
3민수104키보드
4지수NULLNULL
NULLNULL105태블릿

🔹 고객 테이블과 주문 테이블의 모든 데이터를 가져오며, 일치하지 않는 데이터는 NULL 처리됩니다.


3. 마무리

이제 SQL에서 자주 사용되는 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN의 개념과 예제를 살펴보았습니다. 정리하면 다음과 같습니다:

INNER JOIN: 공통된 데이터만 조회 ✅ LEFT JOIN: 왼쪽 테이블의 모든 데이터 + 일치하지 않는 데이터는 NULL ✅ RIGHT JOIN: 오른쪽 테이블의 모든 데이터 + 일치하지 않는 데이터는 NULL ✅ FULL OUTER JOIN: 두 테이블의 모든 데이터 + 일치하지 않는 데이터는 NULL

SQL 조인은 데이터를 분석할 때 가장 많이 사용되는 개념이므로, 한 번 직접 실습해보면 더욱 쉽게 이해할 수 있을 거예요! 😉

궁금한 점이 있다면 댓글로 남겨주세요! 💬


게시됨

카테고리

작성자

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다