Study/Computer Science

[Database] 조인(JOIN) 종류

욘아리 2024. 8. 20. 18:22

오늘은 데이터베이스에서 자주 사용되는 조인의 종류에 대해 간단히 정리하려고 한다.

 

조인(JOIN)이란?

두 개 이상의 테이블을 결합하여 하나의 결과물을 만드는 작업을 말한다.

MySQL에서는 'JOIN' 쿼리를 사용하여, MongoDB에서는 'lookup' 쿼리를 사용하여 조인을 처리할 수 있다.

 

참고로 MongoDB의 'lookup'은 성능 저하 문제가 있을 수 있어, 가능한 사용하지 않는 것이 좋다.

따라서 여러 테이블을 조인하는 작업이 많다면, 관계형 데이터베이스를 사용하는 것이 더 적합하다.

 

조인의 종류

내부 조인(inner join)

왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 부분만 표기

SELECT * FROM TableA A
INNER JOIN TableB B ON
A.key = B.key

👉 두 테이블 간에 교집합

 

왼쪽 조인(left outer jon)

왼쪽 테이블의 모든 행이 결과 테이블에 표기

SELECT * FROM TableA A
LEFT JOIN TableB B ON
A.key = B.key

👉 테이블 B의 일치하는 부분의 레코드와 함께 테이블 A를 기준으로 완전한 레코드 집합 생성

      테이블 B에 일치하는 항목이 없으면 해당 값은 null 값

 

오른쪽 조인(right outer join)

오른쪽 테이블의 모든 행이 결과 테이블에 표기

SELECT * FROM TableA A
RIGHT JOIN TableB B ON
A.key = B.key

👉 테이블 A의 일치하는 부분의 레코드와 함께 테이블 B를 기준으로 완전한 레코드 집합 생성

      테이블 A에 일치하는 항목이 없으면 해당 값은 null 값

 

합집합 조인(full outer join)

두 개의 테이블을 기반으로 조인 조건에 만족하지 않는 행까지 모두 표기

SELECT * FROM TableA A
FULL OUTER JOIN TableB B ON
A.key = B.key

👉 양쪽 테이블에서 일치하는 레코드와 함께 테이블 A와 테이블 B의 모든 레코드 집합 생성

      일치하는 항목이 없으면 누락된 쪽에 해당하는 값은 null 값

 

 

👀 SQL의 JOIN을 시각화해서 볼 수 있는 사이트를 통해 어떻게 JOIN을 구축해야 하는지 쉽게 확인할 수 있다.

https://sql-joins.leopard.in.ua/

 

SQL Joins Visualizer

Please select how do you want to do SQL JOIN between two table Copy SQL

sql-joins.leopard.in.ua

 

 

 

출처

면접을 위한 CS 전공지식 노트, 주홍철

https://velog.io/@slr-09/%EC%A1%B0%EC%9D%B8%EC%9D%98-%EC%A2%85%EB%A5%98