SQL JOIN 완전정복

sunjoo·2020년 9월 11일
27

SQL

목록 보기
5/5

📌 Say NO to Venn Diagrams When Explaining JOINs


🚫 JOIN을 설명할 때 벤다이어그램 NO!!!

JOIN은 사실 필터 기능이 있는 카테시안 곱 이다!

💡 카테시안 곱이란?

곱집합 혹은 데카르트의 곱이라고도 불린다.
Query의 From절에 2개 이상의 Table이 있고, 두 Table 사이의 유효한 Join 조건이 기술되어 있지 않은 경우에 두 Table의 모든 행들이 무조건 결합하여 Table들에 존재하는 행 갯수를 곱한 만큼의 결과값이 반환되는 것이다.

쉽게 말해,
A={a,b,c} 와 B={1,2} 두 집합을 아무 유효조건 없이 join하면,
{a,1}, {b,1}, {c,1}, {a,2}, {b,2}, {c,2} 이라는 결과가 나온다.
즉, 가능한 모든 경우의 집합이 결과로 나온다.

🎈 JOIN 확실히 눈으로 보자!

(편의 상 그림 속 {1,2,3}인 좌측테이블을 tbl1, {A,B,C}인 우측테이블을 tbl2로 정의하겠다)

tbl1과 tbl2를 아무 조건 없이 join하면 아래와 같은 카테시안 곱의 결과가 나올 것이다.

그 후에 조건을 걸어준다면(inner join, left join, right join, full join) 이 전체 결과 중 필터에 걸러진, 조건에 맞는 값들만 result table에 나오는 것이다!

이렇게 이해하면 벤다이어그램으로는 모호했던 부분이 비로소 이해가 된다.
(보자마자 무릎을 팍 쳤다! 속이 다 시원하다.)

profile
Future Data Analyst

2개의 댓글

comment-user-thumbnail
2020년 9월 23일

벤다이어 그램 보고도 그러려니 하고 넘어갔던 부분이었는데, 좋은 설명 감사합니다🙇🏻‍♀️

답글 달기
comment-user-thumbnail
2020년 10월 8일

한눈에 이해되는 그림이라 너무 좋네요 감사합니다!

답글 달기