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

김지현님의 프로필 이미지
김지현

작성한 질문수

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

INNER JOIN 해커랭크 문제풀이

질문이 있습니다!

작성

·

204

1

1번, 2번 문제를 여러 가지 시도를 해보면서 풀어봤는데, where 절에서 country.continent를 한 것과 continent를 바로 해준 것과 결과는 차이가 없더라고요.

아무래도 continent 컬럼은 country 테이블에'만' 있는 것이라 그런 것 같은데요, 실무에서도 이렇게 단일 컬럼인 경우 테이블 명을 생략하기도 하나요? 혹은 그래도 명확함을 위해 테이블 명을 반드시 표기해주는 게 좋을까요? 

답변 부탁드립니다! :) 

답변 2

1

이보민님의 프로필 이미지
이보민
지식공유자

안녕하세요 젼님,

말씀하신대로 JOIN 된 테이블 중 중복되는 이름이 없는 컬럼명을 사용할 때에는 테이블 명을 생략해도 데이터 추출이 가능합니다.

따라서 테이블명을 명시하는 쿼리와 명시하지 않는 쿼리의 결과 차이는 없으나, 말씀해주신대로 쿼리를 읽을 다른 분석가, 개발자들을 위해서 테이블 명을 남기는 것은 좋은 습관이라고 생각합니다.

또한 쿼리 성능면에서도 테이블 명을 명시해주는 것이 좋을 거라고 생각이 드는데요. 테이블 명을 명시할 경우 해당 테이블 내에서만 컬럼 검색을 하게 되는 데 명시하지 않을 경우에는 전체 테이블에서 해당 컬럼명과 일치하는 컬럼을 찾아야 하기 때문에 연산 속도에 영향을 줄 수도 있을 것으로 생각됩니다.

쿼리 성능과 관련해서는 참고하실만한 레퍼런스를 혹시 찾게 되면 추가로 답변 남겨드리도록 하겠습니다.

궁금증이 해결되셨길 바랍니다 :)

0

같은 궁금증이 있었는데 이미 좋은 질의응답이 있었네요! 감사합니다!!

김지현님의 프로필 이미지
김지현

작성한 질문수

질문하기