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

info님의 프로필 이미지
info

작성한 질문수

SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법

의미 오류는 잠재적인 성능 이슈

서브쿼리 내 잘못된 외부 열 참조

해결된 질문

작성

·

235

2

안녕하세요

 

select order_date from NorthWind.orders
where order_id in (select order_id from customers);

부분에서 쿼리에러는 발생하지 않지만 , 

최종결과에서는 우리가 생각하는것과 달리 전체 데이터를 출력하고있잖아요 .

그 이유가 무엇이라고용 ?? 서브쿼리에서 외부 테이블의 칼럼을 참조하고있으면 그런건가용?? 왜그런걸까용 ? ㅎㅎ

customers 테이블엔 order_id 칼럼이 존재하지 않고 ,

외부에있는 order_id 를 참조하고있으니 그냥 값만 들어있어도 전체쿼리가 출력이 되는걸까요 ??

 

답변 1

0

김정선SQL님의 프로필 이미지
김정선SQL
지식공유자

안녕하세요 info님,

 

최종적으로  WHERE order_id = order_id 형식(자기 자신을 결합)을 가지게 되어 이는 사실 상 WHERE 1 = 1 의 의미가 되므로 orders 테이블의 모든 행을 검색(출력)하는 결과가 만들어집니다.

 

이해에 도움이 되시길 바랍니다.

김정선 드림

info님의 프로필 이미지
info
질문자

도움되었습니다 감사합니당

info님의 프로필 이미지
info

작성한 질문수

질문하기