[수업 목표]
- 여러 테이블의 정보를 연결하는 Join을 이해한다.
- 연결된 정보를 바탕으로 보다 풍부한 데이터분석을 연습한다.
- 아래 위로 결과를 연결하는 Union을 공부한다.
여러 테이블을 연결해 보자 : Join
- join 이란?
- 두 테이블의 공통된 정보 (key값)를 기준으로 테이블을 연결해서 한 테이블처럼 보는 것
- 예) user_id 필드를 기준으로 users 테이블과 point_users 테이블을 연결하기
select * from point_users
left join users on point_users.user_id = users.user_id
- Join의 종류: Left Join, Inner Join
- Left Join - 합집합
Left Join은 Outer Join의 일종이다. 따라서 Left Outer Join이라고 볼 수 있다.
여기서 Left Join은 왼쪽의 모든 행을 조회한다. 따라서, point_users테이블의 user_id필드의 값이 NULL이면, users테이블은 해당 행이 존재하지 않으므로 해당 행의 필드 값들은 NULL로 채워진다. - Inner Join - 교집합
말 그대로 교집합을 의미한다. 따라서 겹치지 않는 행이 존재할 경우, 그 행은 결과에서 제외된다.
- Left Join - 합집합
결과물 합치기 - Union
- 여러개의 쿼리문을 사용하여 하나의 데이터로 출력해야 되는 경우 사용
- Union - 결과를 합칠 떄 중복되는 행은 하나만 표시
Union all - 중복제거를 하지 않고 모두 합쳐서 표시