본문 바로가기

개발일지

[개발일지] 스파르타 코딩클럽_SQL_join 활용

이제까지 학습한 문법을 join과 함께 활용하여 통계치 내보기

▼checkins 테이블에 courses 테이블 연결해서 과목별 오늘의 다짐 갯수 세어보기

  • select c1.course_id, c2.title, count(*) as cnt from checkins c1 inner join courses c2 on c1.course_id = c2.course_id group by c1.course_id

1. join 을 활용하여 checkins 테이블에 courses 테이블을 연결한다.

join 을 활용하여 checkins 테이블에 courses 테이블을 연결/스파르타 코딩클럽 강의캡쳐

ㅊ12. 과목별오늘의 다짐 갯수 통계치 출력하기

최종 결과값 출력 /스파르타 코딩클럽 강의 갭쳐

더보기

👉 [오늘의 팁!]

alias는 이렇게 사용하면 편합니다. 연결되는 테이블이 많아지면서 필드명과 테이블명이 헷갈려 실수할 수 있는데, 이렇게 alias를 지정해 주면 편하고 깔끔하게 SQL 쿼리를 작성할 수 있어요.

 

▼point_users 테이블에 users 테이블 연결해서 많은 포인트를 얻은 순서대로 유저 데이터 정렬해서 보기

결과값을 좀 더 한눈에 파악하기 쉽도록록 user_id, name, email, point 값만 내림차순으로 출력하기

스파르타 강의화면 캡쳐

 

▼ orders 테이블에 users 테이블 연결해서 네이버 이메일 사용하는 유저의 성씨별 주문건수 세어보기

 

1. orders 테이블과 users 테이블을 user_id 기준으로 연결 후 네이버 이메일 사용하는 유저만 출력하기.

where절과 join 함께 사용하기/스파르타 코딩클럽 강의 캡쳐

2. 성씨별 묶어서 성씨별 주문건수 축력하기.

where 절과 join 활용 최종 결과 출력/스파르타 코딩클럽 강의 캡쳐

👉 위 쿼리가 실행되는 순서: from → join → where → group by → select 

  1. from orders o: orders 테이블 데이터 전체를 가져오고 o라는 별칭을 붙입니다.
  2. inner join users u on o.user_id = u.user_id : users 테이블을 orders 테이블 에 붙이는데, orders 테이블의 user_id와 동일한 user_id를 갖는 users 테이블 데이터를 붙입니다. (*users 테이블에 u라는 별칭을 붙입니다) 
  3. where u.email like '%naver.com': users 테이블 email 필드값이 naver.com으 로 끝나는 값만 가져옵니다. 
  4. group by u.name: users 테이블의 name값이 같은 값들을 뭉쳐줍니다
  5. select u.name, count(u.name) as count_name : users 테이블의 name필드 와 name 필드를 기준으로 뭉쳐진 갯수를 세어서 출력해줍니다.

▼ 웹개발, 앱개발 종합반의 week 별 체크인 수를 세어볼까요? 보기 좋게 정리 해보기!

더보기

 👉 힌트!!

join 할 테이블: courses에, checkins 를 붙이기

group by, order by에 콤마로 이어서 두 개 필드를 걸어보세요!

1.join 으로 연결하기/스파르타 코딩클럽 강의캡쳐

과목별, week 별로 2개로 묶기 / 스파르타 코딩클럽 강의화면 캡쳐

과목별, week 별 정렬/스파르타 코딩클럽 강의 캡쳐

▼ 위 값에서 8월 1일 이후에 구매한 고객들만 발라내어 보세요!

[참고] join 할 테이블: courses에, checkins 를 붙이고! + checkins 에, orders 를 한번 더 붙이기!

스파르타 코딩클럽 강의 캡쳐 화면

스파르타 코딩클럽 강의 캡쳐 화면