[핵심 답변]
Join이란 두 개 이상의 테이블을 서로 연결하여 하나의 결과를 만들어 보여주는 것을 말합니다.
inner join(또는 join)은 두 테이블에 모두 있는 내용만 join되는 방식입니다.
left outer join(또는 left join)은 왼쪽 table의 모든 행에 대해서 join을 진행합니다.
[면접
TIP]
Join중에 가장 자주 사용되는 inner join과 left outer join 을 제대로 이해하고, 사용할 수 있는지 묻는 질문입니다. Join은 실무에서도 자주 사용되기 때문에 면접 질문으로도 가끔 나옵니다. 따라서 둘의 차이점을 간결하게 설명하면 됩니다.
Inner Join(내부조인)
두 테이블을 연결할 때 가장 많이 사용되는 것이 inner join입니다. inner join은 줄여서 join으로 부르기도 합니다. 두 테이블을 join하기 위해서는 두 테이블이 1:N 관계로 연결되어야 합니다. 1:N 관계는 주로 primary key와 foreign key 관계로 맺어져 있습니다. (상호조인의 경우에는 PK-FK 관계가 아니여도 됩니다.)
[SQL JOIN 예시]
•
vedio table
id | title | y_id |
1 | 데이터베이스 완전정복 | 2 |
2 | 볼리비아 광산 탐방기 | 4 |
3 | 침vs펄 토론 | 3 |
4 | 운영체제 완전 정복 | 2 |
5 | 충격실화 대한민국이 해냈다 | Null |
•
youtuber table
id | name | 채널 설명 |
1 | 쯔양 | 먹방 |
2 | 개발남노씨 | 개발 |
3 | 침착맨 | 예능 |
4 | 빠니보틀 | 여행 |
select * from vedio inner join youtuber on vedio.y_id = youtuber.id;
SQL
복사
inner join의 sql query 예시
id | title | y_id | name | 채널 설명 |
1 | 데이터베이스 완전정복 | 2 | 개발남노씨 | 개발 |
2 | 볼리비아 광산 탐방기 | 4 | 빠니보틀 | 여행 |
3 | 침vs펄 토론 | 3 | 침착맨 | 예능 |
4 | 운영체제 완전 정복 | 2 | 개발남노씨 | 개발 |
두 table에 공통된 데이터가 존재하는 행에 대해서만 데이터를 검색합니다.
left outer join(외부조인)
select * from vedio left join youtuber on vedio.y_id = youtuber.id;
SQL
복사
left outer join의 예시
id | title | y_id | name | 채널 설명 |
1 | 데이터베이스 완전정복 | 2 | 개발남노씨 | 개발 |
2 | 볼리비아 광산 탐방기 | 4 | 빠니보틀 | 여행 |
3 | 침vs펄 토론 | 3 | 침착맨 | 예능 |
4 | 운영체제 완전 정복 | 2 | 개발남노씨 | 개발 |
5 | 충격실화 대한민국이 해냈다 | Null | Null | Null |
왼쪽 vedio table의 모든 데이터를 포함한 데이터를 검색합니다.