커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
3-4) Join 연습 5에서 checkins 에 orders 를 붙일 때
[왕초보] 엑셀보다 쉬운, SQL
3주차
북마크
이*현
댓글
2
추천
1
조회수
22
조회수
22
답변 완료

강사님께서는 users_id 를 기준으로 잡으라고 하셨고 아래와 같이 작성하셨습니다.

SELECT c.title , c2.week , COUNT(*) as cnt FROM courses c 
inner join checkins c2 on c.course_id = c2.course_id 
inner join orders o on c2.user_id = o.user_id 
WHERE o.created_at >= '2020-08-01'
GROUP BY c.title , c2.week 
ORDER BY c.title , c2.week ;


그런데 저는 2번째 줄에서도 course_id 를 기준으로 잡았겠다, orders 테이블에도 course_id 필드가 있겠다 해서 아래처럼 작성해봤습니다.

SELECT c.title , c2.week , COUNT(*) as cnt FROM courses c 
inner join checkins c2 on c.course_id = c2.course_id 
inner join orders o on c2.course_id = o.course_id 
WHERE o.created_at >= '2020-08-01'
GROUP BY c.title , c2.week 
ORDER BY c.title , c2.week ;


그런데 그랬더니 결과가 완전히 다르게 나오더라고요.

스파르타 즉문즉답

이게 강사님의 결과고

스파르타 즉문즉답

이게 제 결과입니다.



왜 이런 차이가 생기는 건가요?

어떤 필드를 기준으로 잡아야 하는지는 어떻게 구분하나요?

취소
 공유
취소
댓글 0
댓글 알림
나의얼굴