📌 Say NO to Venn Diagrams When Explaining JOINs
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} 이라는 결과가 나온다.
즉, 가능한 모든 경우의 집합이 결과로 나온다.
(편의 상 그림 속 {1,2,3}인 좌측테이블을 tbl1, {A,B,C}인 우측테이블을 tbl2로 정의하겠다)
tbl1과 tbl2를 아무 조건 없이 join하면 아래와 같은 카테시안 곱의 결과가 나올 것이다.
그 후에 조건을 걸어준다면(inner join, left join, right join, full join) 이 전체 결과 중 필터에 걸러진, 조건에 맞는 값들만 result table에 나오는 것이다!
이렇게 이해하면 벤다이어그램으로는 모호했던 부분이 비로소 이해가 된다.
(보자마자 무릎을 팍 쳤다! 속이 다 시원하다.)
벤다이어 그램 보고도 그러려니 하고 넘어갔던 부분이었는데, 좋은 설명 감사합니다🙇🏻♀️