본문 바로가기

개발일지

[개발일지]스파르타 코딩클럽_SQL_Join

Join: 여러 정보를 한 눈에 보고 싶다면

더보기

한 테이블에 모든 정보를 담을 수도 있겠지만, 불필요하게 테이블의 크 기가 커져 불편해집니다.

그래서, 데이터를 목적에 따라 종류별로 쪼개 다른 테이블에 담아놓고 연결이 필요한 경우 연결할 수 있도록 만든다.

예를 들면, users와 checkins 테이블에 동시에 존재하는 user_id 처럼...

이런 필드를 두 테이블을 연결시켜주는 열쇠라는 의미로 'key'라고 부른다.

여러 테이블을 연결해보자: Join 이란?

Join이란? 두 테이블의 공통된 정보 (key값)를 기준으로 테이블을 연결해서 한 테이블 처럼 보는 것

. 예) user_id 필드를 기준으로 users 테이블과 orders 테이블을 연결해서 한 눈에 보고 싶어요!

 

■ Join 을 사용해서 Key값으로 두 테이블 연결해보기

스파르타 코딩클럽 :Join 을 사용해서 Key값으로 두 테이블 연결해보기

  • SQL의 Join은 엑셀의 vlookup과 동일하다고 생각하면 된다.
  • Join의 종류: Left Join, Inner Join

▼users 테이블에다 point_users 테이블 붙이기:left join

  1.  테이블 우선 살펴보기 ☞ select * from users ; selct * from point_users
  2. select * from users u left join point_users p on u.users_id=p.users_id 실행

스파프타 코딩클럽 강의 캡쳐: left join

※ 어떤 데이터는 모든 필드가 채워져있지만, 어떤 데이터는 비어있는 필드 가 있습니다.

꽉찬 데이터: 해당 데이터의 user_id 필드값이 point_users 테이블에 존재해서 연결한 경우

비어있는 데이터: 해당 데이터의 user_id 필드값이 point_users 테이 블에 존재하지 않는 경

 

스파르타 코딩클럽 ㅣ유저테이블로 left join 이해하기

▼users 테이블에다 point_users 테이블 붙이기:inner join

스파르타 코딩클럽: 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를 두 테이블에서 모두 가지고 있는 데이터 만 출력했기 때문