인프런 커뮤니티 질문&답변
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





