강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

Somm님의 프로필 이미지
Somm

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이

4번 문제 풀이

inner join 절 질문드립니다

작성

·

199

0

안녕하세요. inner join절 질문드립니다.

영상에서 [inner join challenges c on s.challenge_id=c.challenge_id] 쿼리를 [inner join challenges c on h.hacker_id = c.hacker_id]로 입력을 해서 실행한 결과 전혀 다른 값이 나오는 것을 확인할 수 있었습니다. (다른 쿼리는 모두 동일했습니다)

윗줄에서 submissions table과 hackers table이 inner join되어 있어서 hackers table과 challenges table을 inner join 해도 결과값이 같을 것이라고 예상했었는데요.

해당 쿼리를 이용하여 inner join했을때 왜 다른 값이 나오는지 궁금합니다. 또한 이때 테이블 구조가 어떻게 변경되는지도 알려주시면 감사드리겠습니다.

감사합니다.

퀴즈

컬럼의 최대값과 최소값의 차이를 계산하려면 주로 어떤 함수들을 사용해야 할까요?

AVG()와 SUM()

MAX()와 MIN()

COUNT()와 AVG()

MIN()와 SUM()

답변 1

0

윤선미님의 프로필 이미지
윤선미
지식공유자

안녕하세요.

조인을 할 때 어떤 테이블을 어떤 키를 가지고 연결할 것인지는 매우 중요합니다. challenges 테이블을 challenge_id라는 컬럼을 이용해 s 라는 테이블과 연결했을 때와, challenges 테이블을 hacker_id 라는 컬럼을 이용해 h 라는 테이블과 연결했을 때의 결과물은 다릅니다.

여러 테이블을 조인해놓은 결과물을 보고 헷갈리신다면, 다른 테이블들은 쿼리에서 덜어내고 challenges 테이블과 조인 조건만 가지고 각각 두 가지 케이스의 조인 결과물을 보고 비교해보시면 이해가 되실 것 같습니다.

inner join challenges c on s.challenge_id=c.challenge_id
inner join challenges c on h.hacker_id = c.hacker_id

Somm님의 프로필 이미지
Somm

작성한 질문수

질문하기