반응형
안녕하세요! 토스트데브입니다.
오늘은 SQL에서 여러 테이블을 연결해 데이터를 조회하는 방법, 바로 JOIN에 대해 정리해보겠습니다.
🔗 SQL JOIN이란?
SQL의 JOIN은 두 개 이상의 테이블을 연결해 관련 있는 데이터를 함께 조회할 수 있도록 해주는 기능입니다.
실제 프로젝트에서는 데이터가 여러 테이블에 나뉘어 저장되기 때문에, JOIN은 실무에서 반드시 필요한 핵심 기능입니다.
📌 JOIN의 기본 구조
SELECT A.컬럼, B.컬럼
FROM 테이블A A
JOIN 테이블B B
ON A.기준컬럼 = B.기준컬럼;
🧩 JOIN의 종류
1️⃣ INNER JOIN – 공통된 값만 조회
두 테이블에서 일치하는 데이터만 조회합니다.
SELECT users.name, orders.product
FROM users
INNER JOIN orders
ON users.id = orders.user_id;
➡ users.id와 orders.user_id가 일치하는 경우만 결과에 포함됩니다.
2️⃣ LEFT JOIN – 왼쪽 테이블은 모두, 오른쪽은 일치하는 것만
SELECT users.name, orders.product
FROM users
LEFT JOIN orders
ON users.id = orders.user_id;
➡ 사용자 목록은 전부 보여주고, 주문이 없으면 NULL로 표시됩니다.
3️⃣ RIGHT JOIN – 오른쪽 테이블은 모두, 왼쪽은 일치하는 것만
SELECT users.name, orders.product
FROM users
RIGHT JOIN orders
ON users.id = orders.user_id;
➡ 주문 데이터는 모두 보여주고, 사용자 정보가 없으면 NULL
4️⃣ FULL OUTER JOIN – 양쪽 모두 출력
모든 행을 보여주고, 일치하지 않으면 NULL로 채웁니다.
※ MySQL은 기본적으로 지원하지 않으며 UNION으로 대체 가능
SELECT users.name, orders.product
FROM users
FULL OUTER JOIN orders
ON users.id = orders.user_id;
5️⃣ SELF JOIN – 자기 자신과 연결
한 테이블 안에서의 관계(예: 직원-상사)를 표현할 때 사용합니다.
SELECT A.name AS 직원, B.name AS 상사
FROM employees A
JOIN employees B
ON A.manager_id = B.id;
🛠️ 실무 팁
- 조인 조건은 반드시 ON 또는 USING으로 명확히 지정해야 합니다.
- 컬럼명이 겹치는 경우 테이블명.컬럼명을 써야 오류를 피할 수 있습니다.
- 조인이 많아질수록 성능 저하 가능성이 있으니 인덱스와 EXPLAIN 활용을 고려하세요.
📝 마무리
SQL JOIN은 데이터베이스 내 복잡한 관계를 풀어내는 열쇠입니다.
INNER, LEFT, RIGHT, SELF, FULL JOIN 각각의 쓰임을 이해하면 실무에서 더욱 유연하게 데이터를 연결하고 처리할 수 있어요!
#SQL #SQL기초 #JOIN #INNERJOIN #LEFTJOIN #RIGHTJOIN #FULLJOIN #SELFJOIN #데이터베이스 #쿼리작성법 #DBMS #MySQL #SQL강의
반응형
'Database > SQL' 카테고리의 다른 글
[SQL] #06 SQL 데이터 삽입(INSERT), 수정(UPDATE), 삭제(DELETE) (0) | 2025.07.28 |
---|---|
[SQL] #05 SQL 집계 함수(count, sum, avg, max, min)와 Group by (1) | 2025.07.27 |
[SQL] #04 SQL 조건문 완벽정리! WHERE, AND, OR, NOT 쉽게 배우기! (0) | 2025.07.18 |
[SQL] #03 SELCT 문 완벽 정리! 데이터 조회의 모든 것! (0) | 2025.07.17 |
[SQL] #02 SQL이란? 데이터베이스와 대화하는 언어! (0) | 2025.07.15 |