카테고리 없음

[CS / DB] ep21. left outer join, inner join 차이를 설명해 주세요

터틀넥 2024. 4. 13. 00:01

🤔 면접 질문

 
Q1. left outer join, inner join 차이를 설명해 주세요

A1. Join이란 두 개 이상의 테이블을 서로 연결하여 하나의 결과를 만들어 보여주는 것을 말합니다.
 
inner join(또는 join)은 두 테이블에 모두 있는 내용만 join되는 방식입니다. left outer join(또는 left join)은 왼쪽 table의 모든 행에 대해서 join을 진행합니다.
 
 
 
 

💡 면접🐕🍯 tip

 
Join중에 가장 자주 사용되는 inner joinleft outer join을 제대로 이해하고, 사용할 수 있는지 묻는 질문이다.
 
Join은 실무에서도 자주 사용되기 때문에 면접 질문으로도 가끔 나온다. 따라서 둘의 차이점을 간결하게 설명하면 된다.
 
 
 
 

1️⃣ Inner Join(내부조인)

 
두 테이블을 연결할 때 가장 많이 사용되는 것이 inner join이다. inner join은 줄여서 join으로 부르기도 한다.
 
두 테이블을 join하기 위해서는 두 테이블이 1:N 관계로 연결되어야 한다.
 
1:N 관계는 주로 primary key와 foreign key 관계로 맺어져 있다. (상호조인의 경우에는 PK-FK 관계가 아니여도 된다.)
 
 

Inner Join

 
 

Left Join

 
 
 
 

2️⃣ [SQL Join 예시]

 

1. 인사정보 테이블 : INSA

CODENAMESOSOK
A1이순신해군
A2장보고해군
A3광개토육군
A4터틀넥공군
A5홍길동공군

 
 
 

2. 계급 코드 테이블 :  RANKCODE

CODERANKNAME
A1대장
A2소령
A3병장
A4대위

 
 
 

3. Inner Join SQL 예시

SELECT * FROM INSA INNER JOIN RANKCODE ON INSA.CODE = RANKCODE = CODE;

 
 

codenamesosokcoderankname
A1이순신해군A1대장
A2장보고해군A2소령
A3광개토육군A3병장
A4터틀넥공군A4대위

 
* 두 테이블에 공통된 데이터가 존재하는 행에 대해서만 데이터를 검색된 것을 볼 수 있다.

 

4. Left Outer Join 예시

SELECT * FROM INSA LEFT JOIN RANKCODE ON INSA.CODE = RANKCODE.CODE;

 
 

codenamesosokcoderankname
A1이순신해군A1대장
A2장보고해군A2소령
A3광개토육군A3병장
A4터틀넥공군A4대위
A5홍길동공군NULLNULL

 

* 왼쪽 'INSA' 테이블의 모든 데이터를 포함한 데이터가 검색된 것을 볼 수 있다.