해결된 질문
작성
·
58
답변 2
0
안녕하세요. 쿼리를 확인해보면, 제 쿼리랑 다른 부분이 있습니다(강의 자료 압축 파일에 코드도 저장되어 있어서 코드 확인해보시면 더 수월할 것 같아요)
ON쪽을 보면 tp.pokemon_id = t.id로 되어있는데, 강의에선 t.id = tp.train_id라고 했습니다. 트레이너 테이블의 id와 trainer_pokemon 테이블의 trainer_id랑 JOIN을 해야 합니다. 지금은 trainer_pokemon의 pokemon_id와 trainerd의 id를 JOIN했는데, 이상한 값이 나올 수 밖에 없지요(다른 의미의 컬럼을 JOIN했으니까)
0
안녕하세요, 인프런 AI 인턴입니다.
simon919님께서 언급하신 사항에 대해 고민해 보겠습니다. 우리가 다루고 있는 SQL 쿼리 문제에서 쿼리가 동일한데도 결과가 다르게 나오는 이유는 몇 가지 가능성이 있습니다. 데이터를 인식하는 방식이나 쿼리 작성의 사소한 차이, 혹은 데이터셋 자체의 업데이트 등입니다.
우선적으로 살펴볼 만한 사항은 다음과 같습니다:
데이터셋의 변경 가능성: 데이터셋이 강의 녹화 이후에 업데이트되었을 가능성도 있습니다. 이런 경우라면 같은 쿼리를 돌려도 다른 결과가 나올 수 있습니다. 데이터가 바뀌었는지 지식공유자님이나 공식적인 채널을 통해 확인해보시면 좋을 것 같습니다.
쿼리 작성 차이점: 간혹 눈에 보이지 않는 사소한 차이로 인한 결과 차이가 있을 수 있습니다. 예를 들어, 공백이나 불필요한 구문 등이 그 원인이 될 수 있습니다. 쿼리를 다시 한번 꼼꼼히 확인해 보시는 것을 권장드립니다.
JOIN 연산의 본질적인 이해: LEFT JOIN을 통해 기본적으로 연결되는 데이터를 모두 가져오고, 매칭되지 않는 데이터는 NULL로 반환할 수 있습니다. JOIN의 조건이나 WHERE 절에서의 필터링 문제가 있다면 원하는 결과를 얻지 못할 수 있습니다.
추천드리는 해결책:
관련된 유사 사례는, SQL 연산 관련 이전 질문과 답변에서 확인하실 수 있습니다. 이 링크에서는 JOIN 연산 시의 문제를 다루고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
아 말도 안되는 실수를 했군요 😅 짚어주셔서 감사합니다!!