티스토리 뷰
JOIN의 종류

JOIN의 사용 목적
- 데이터 분리 저장 → 필요할 때 결합
- 중복 줄이기
- 관계형 데이터 조회
예:
- 회원 + 주문 정보
- 게시글 + 작성자
- 상품 + 카테고리
JOIN 종류의미
| INNER (기본) | 공통된 데이터만 |
| LEFT (실무핵심) | 왼쪽 전체 + 오른쪽 일부 |
| RIGHT | 오른쪽 전체 + 왼쪽 일부 |
| FULL | 양쪽 전체 |
| CROSS | 모든 조합 |
| SELF | 자기 자신과 JOIN |
JOIN의 기초 문법 안내
- JOIN 원하는 테이블 AS 약칭 ON 기준1 = 기준2
- Tip1 기준1 , 기준2는 데이터 구조도 동일하게 하는 것을 권장합니다.
- Tip2 Bigquery에서는 데이터 구조가 다르면 JOIN시 ERROR가 발생합니다.
SELECT 컬럼들
FROM 테이블1
JOIN 테이블2
ON 테이블1.key = 테이블2.key
1. INNER JOIN : ID값이 서로 중복되는 값만 나타낸다.

select *
from 테이블_A
inner join 테이블_B
on A.key = B.key
SELECT *
FROM users u
INNER JOIN orders o
ON u.user_id = o.user_id
2. OUTER JOIN

- 두 테이블 간의 교집합 되는 데이터뿐만 아닌 해당되지 않는 값 까지 가져온다.
- 드라이빙 테이블(처음으로 가져오는 기준이 되는 테이블) 필요합니다
- INNER JOIN과 비슷하지만 안 겹치는 것도 포함해서 나타냅니다
OUTER JOIN의 개념은
- FULL JOIN → 둘 다 유지
- RIGHT JOIN → 오른쪽 기준 유
- LEFT JOIN → 왼쪽 기준 유지
2-1 FULL OUTER JOIN : 모든 데이터 조회를 위한 합집합 개념
SELECT *
FROM users u
FULL OUTER JOIN orders o
ON u.user_id = o.user_id;
2-2 LEFT OUTER JOIN : FROM "Table"에 초점을 맞춘 Join
SELECT *
FROM users u
LEFT OUTER JOIN orders o
ON u.user_id = o.user_id;
2-3 RIGHT OUTER JOIN : OUTER JOIN "TABLE"에 초점을 맞춘 JOIN
SELECT *
FROM users u
RIGHT OUTER JOIN orders o
ON u.user_id = o.user_id;
3. LEFT JOIN : 왼쪽 테이블을 중심으로 오른쪽의 테이블을 매치시킨다.
(오른쪽 테이블 데이터가 없으면, 오른쪽 값은 NULL로 채워집니다.)
기본 문법
SELECT *
FROM A
LEFT JOIN B
ON A.id = B.id;
'SQL' 카테고리의 다른 글
| GROUP BY를 사용할 때 와 아닐 때 (0) | 2026.05.25 |
|---|---|
| [MySQL] CHAR VARCHAR (0) | 2026.04.12 |
- Total
- Today
- Yesterday
- ajax로그인
- 오래된이용자
- 데이터타입
- cookie
- varchar
- FIFO
- 회원상태
- 날씨불러오기
- deque
- 셀레니움
- 비밀번호암호화
- mybatis
- springbootcss
- springboot
- ResultType
- java
- 세션
- Spring
- Vo
- DTO
- 크롤링연습
- char
- 스케줄러
- 차이점
- parameterType
- 비동기식
- bcrypt
- 기상청api
- LIFO
- AJAX
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |