본문 바로가기

SQL - Mysql & Oracle/SQL 기본기 마스터

[SQL] JOIN 한 방에 정리 - 개념부터 코드까지 이것만 보자

반응형

SQL을 다루는 사람들이 반드시 알아야 할 개념 중에 하나가 바로 JOIN이다. Join은 아주 쉽게 얘기해서 집합의 개념과 매우 유사하다. Data Analyst, PO, PM 등 많은 직군의 사람들이 쓰기 시작해서, 반드시 알아야 할 기초와 코드를 정리해보고자 한다. 오늘 다루게 될 내용은 INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, 그리고 FULL OUTER JOIN이다. 

 

 

1. JOIN의 모든 종류

SQL Join 문법

 

  • JOIN의 기초 문법 안내
    • JOIN 원하는 테이블 AS 약칭 ON 기준1 = 기준2
    • Tip1. 기준1과 기준2는 데이터 구조도 동일하게 하는 것을 권장한다.
    • Tip2. Bigquery에서는 데이터 구조가 다르면 JOIN시 Error가 발생한다. 

 

  • Big Query 실습 데이터 안내
    • 데이터는 동물들과 그 숫자로 나타낸 임시 테이블이다.
    • 실습 환경은 Bigquery에 적재하여 진행하였다. 테이블 만드는 방법은 다른 포스팅에서 다루도록 하겠다. 방법은 매우 쉬우니 한 번 시도해보는 것을 권장한다. 
    • A와 B의 공유하는 Column은 animal이기에, 항상 JOIN KEY값으로 활용할 것이다. 
    • 핵심은 JOIN의 종류에 따라서 어떤 결과가 나오는지, 그리고 무슨 차이가 있는지 보여주는데 초점을 둔다. 
SQL 실습 데이터1
SQL 실습 데이터2

 

 


2. INNER JOIN 

  • 기본 개념
    • INNER JOIN은 교집합에 해당 하는 개념이다. 

inner join 예시

 

  • 결과 설명
    • A, B 각각 존재하는 동물 종류는 9가지였다.  
    • A와 B에 모두 동시에 존재하는 동물은 총 7 종류로 나왔다. 
    • 즉 7개의 교집합만을 산출해서 보여준 것이다. 
  • 실무 예시: 신발 제품과 의류 제품을 모두 구매한 고객들이 궁금하다면 사용 가능

 

 


3. LEFT OUTER JOIN

 

  • 기본 개념
    • FROM "Table"에 초점을 맞춘 Join이다. 

LEFT OUTER JOIN 예시 결과

 

  • 결과 설명
    • A에 해당하는 동물들은 모두 호출 되었다. 
    • B에서는 A와 동일한 종이 있는 경우에만 호출 되었다. 
    • B에서는 Elephant와 Mouse가 없는 것을 확인할 수 있었다. 
  • 실무 예시: 신발을 구매한 사람들 중 티셔츠를 동시에 산 사람들과 아닌 사람을 구분해서 보고 싶은 경우

 

 

반응형

 


 

4. RIGHT OUTER JOIN

  • 기본 개념
    • OUTER JOIN "Table"에 초점을 맞춘 Join이다. 

RIGHT OUTER JOIN 예시 결과

  • 결과 설명
    • 이것은 LEFT OUTER JOIN 결과와 거의 동일한데, 그 방향성이 FROM에 있는지 혹은 JOIN에 있는지 차이다. 
    • 그 결과 이번에는 B는 모두 호출되었지만, A는 racoon과  zebra가 없기 때문에 결과가 나타나지 않았다. 
    • 그래서 보통 실무에서 이 함수의 사용 빈도는 낮은 편이지만, 그래도 알아두면 좋다. 

 



5. FULL OUTER JOIN 

 

 

  • 기본 개념
    • 모든 데이터 조회를 위한 합집합 개념이다. 

  • 결과 설명
    • 이번에는 A와 B에 존재하는 모든 동물의 종이 조회가 되었다. 
    • 그래서 A에는 racoon과 zebra 빼고 모두 호출된 반면, B에서는 elephant와 mouse를 제외하고 모두 호출 되었다. 
    • 이 경우 모든 데이터를 조회할 수 있는 장점이 있는 대신, 데이터 처리 리소스 비용이 많이 드는 단점 또한 있으니 적절하게 사용해야 한다. 
  • 실무 예시: 신발과 패딩을 구매한 사용자들 패턴 중 모든 경우의 수를 불러와야 할 경우

 

 

여기까지 숙지를 해놓았다면, 실무에서 뿐만 아니라 SQL 코딩 테스트에서 출제될 수 있는 모든 JOIN의 종류를 알았다고 해도 과언이 아니다. 각자의 환경에서 반복 숙달할 수 있도록 연습하는 것을 권장한다. 

 

반응형