반응형
SQL에서 JOIN을 사용할 때 JOIN 종류에 따라서 결과가 천차만별 인데요,
즐찾 해두시고 헷갈릴 때 마다 꺼내 보시라고 쉽게 정리해드려요 !
1) Join 종류별 간단 설명
LEFT JOIN: 왼쪽 테이블은 전부, 오른쪽은 조건 맞는 것만
RIGHT JOIN: 오른쪽 테이블은 전부, 왼쪽은 조건 맞는 것만
FULL OUTER JOIN: 양쪽 테이블에서 조건 맞지 않아도 전부 포함
아무 수식어 없이 단순히 'JOIN' 이라고만 쓰면 기본적으로 INNER JOIN 을 의미
2) JOIN 종류별 포함되는 행 상세 설명
INNER JOIN (=JOIN) | 양쪽 테이블 모두에 존재하는 값 (교집합) | 조인 조건을 만족하는 공통된 값만 출력 |
LEFT JOIN | 왼쪽 테이블 전체 + 오른쪽 테이블에서 일치하는 값 | 왼쪽 기준, 오른쪽에 없으면 NULL |
RIGHT JOIN | 오른쪽 테이블 전체 + 왼쪽 테이블에서 일치하는 값 | 오른쪽 기준, 왼쪽에 없으면 NULL |
FULL OUTER JOIN | 양쪽 테이블의 전체 + 일치하지 않는 값은 NULL로 채움 | 합집합, 어느 한 쪽이라도 존재하면 출력 |
CROSS JOIN | 두 테이블의 가능한 모든 조합 (곱집합) | 조건 없이 모든 행을 곱한 결과 |
SELF JOIN | 자기 자신과의 조인 | 같은 테이블 내에서 관계 있는 데이터를 비교할 때 사용 |
3) 직관적 예시
A 테이블: B 테이블:
+----+ +----+
| 1 | | 1 |
| 2 | | 2 |
| 3 | | 4 |
INNER JOIN 결과 → 1, 2
LEFT JOIN 결과 → 1, 2, 3(NULL)
RIGHT JOIN 결과 → 1, 2, NULL(4)
FULL JOIN 결과 → 1, 2, 3(NULL), NULL(4)
'IT > SQL' 카테고리의 다른 글
QuickSight - 국가별 주문금액 히스토그램 만들기 (쿼리문) (0) | 2024.07.08 |
---|---|
sql ) 해당 브랜드의 주문당 평균 객단가 구하는 방법 쿼리문 (0) | 2024.03.25 |
SQL 기초 쿼리문 예시 3가지 (0) | 2024.02.28 |
SQL 데이터 조회 필수 기초 명령어 (0) | 2024.02.28 |
PostgreSQL case when 활용, 신규주문 재주문 구분해주기 - 레드시프트 (0) | 2024.01.24 |
댓글