• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

inner join 절 질문드립니다

22.02.21 18:19 작성 조회수 117

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했을때 왜 다른 값이 나오는지 궁금합니다. 또한 이때 테이블 구조가 어떻게 변경되는지도 알려주시면 감사드리겠습니다.

감사합니다.

답변 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