Join: 여러 정보를 한 눈에 보고 싶다면
한 테이블에 모든 정보를 담을 수도 있겠지만, 불필요하게 테이블의 크 기가 커져 불편해집니다.
그래서, 데이터를 목적에 따라 종류별로 쪼개 다른 테이블에 담아놓고 연결이 필요한 경우 연결할 수 있도록 만든다.
예를 들면, users와 checkins 테이블에 동시에 존재하는 user_id 처럼...
이런 필드를 두 테이블을 연결시켜주는 열쇠라는 의미로 'key'라고 부른다.
▣ 여러 테이블을 연결해보자: Join 이란?
Join이란? 두 테이블의 공통된 정보 (key값)를 기준으로 테이블을 연결해서 한 테이블 처럼 보는 것
. 예) user_id 필드를 기준으로 users 테이블과 orders 테이블을 연결해서 한 눈에 보고 싶어요!
■ Join 을 사용해서 Key값으로 두 테이블 연결해보기
- SQL의 Join은 엑셀의 vlookup과 동일하다고 생각하면 된다.
- Join의 종류: Left Join, Inner Join
▼users 테이블에다 point_users 테이블 붙이기:left join
- 테이블 우선 살펴보기 ☞ select * from users ; selct * from point_users
- select * from users u left join point_users p on u.users_id=p.users_id 실행
※ 어떤 데이터는 모든 필드가 채워져있지만, 어떤 데이터는 비어있는 필드 가 있습니다.
꽉찬 데이터: 해당 데이터의 user_id 필드값이 point_users 테이블에 존재해서 연결한 경우
비어있는 데이터: 해당 데이터의 user_id 필드값이 point_users 테이 블에 존재하지 않는 경
▼users 테이블에다 point_users 테이블 붙이기:inner join
SQL 쿼리가 실행되는 순서
1. from users: users 테이블 데이터 전체를 가져옵니다.
2.inner join point_users p on u.user_id-p.user_id : point_users를 users 테 이블에 붙이는데, users 테이블의 user_id와 동일한 user_id를 갖는 point_users의 테이블을 붙입니다.
3.select * : 붙여진 모든 데이터를 출력합니다
※앗, 여기서는 비어있는 필드가 있는 데이터가 없어요!
그 이유는, 같은 user_id를 두 테이블에서 모두 가지고 있는 데이터 만 출력했기 때문
'개발일지' 카테고리의 다른 글
[개발일지] 스파르타 코딩클럽_SQL_left join (0) | 2022.02.21 |
---|---|
[개발일지] 스파르타 코딩클럽_SQL_join 활용 (0) | 2022.02.21 |
[개발일지]스파르타 코딩클럽_SQL_Order by ④ (0) | 2022.02.19 |
[개발일지] 스파르타 코딩클럽_SQL_동일한 범주의 데이터를 묶어주는 Group by③ (0) | 2022.02.18 |
[개발일지]스타르타 코딩클럽_SQL_where절과 같이 쓰이는 문법② (0) | 2022.02.18 |