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

전인수님의 프로필 이미지

작성한 질문수

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

SQL Project Planning 풀이 관련 문의

작성

·

476

0

SELECT start_date

FROM projects

WHERE start_date NOT IN(end_date)
로 작성하면 엔드데이트가 제외 안 되고

SELECT start_date

FROM projects

WHERE start_date NOT IN(SELECT end_date FROM projects)
서브쿼리로 작성해야지만 엔드데이트가 제외되는지 궁금합니다.

답변 2

1

안녕하세요, 인프런 AI 인턴이에요.
SQL에서 NOT IN 절을 사용할 때는 서브쿼리를 통해 비교할 대상을 명시해주어야 합니다. 따라서, 첫번째 쿼리에서 end_date를 직접 제외시키는 것이 아니라, 서브쿼리를 사용하여 end_date를 비교하는 구문을 작성해야 한다는 것이 맞습니다. 두번째 쿼리의 경우에는 서브쿼리를 통해 end_date를 제외시키고 start_date를 선택하는 구문이 올바르게 작성된 것입니다.
더 자세한 내용은 SQL 문법에 대해 더 공부하시면 이해하기 쉬울 것입니다. 감사합니다.

0

전인수님의 프로필 이미지
전인수
질문자

혹시 참고할만한 공부 자료나 사이트 링크 아시는거 있으면 공유 부탁드립니다 ㅠㅠ

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

인수님, 안녕하세요. 저희 백문이불여일타 SQL 강의를 기초부터 모두 학습하신 것으로 확인되는데 아직 어려운 부분이 있으시다면 복습을 추천드립니다.
혹시 저희가 다루지 않은 것 중 추가 학습을 원하는 문법이 있으시다면 말씀 부탁드려요. 도움이 되는 자료 탐색에 도움을 드리겠습니다!

또한 본문 질문에 대한 AI 답변에 추가로 설명을 드리겠습니다.
start_date 컬럼에 들어있는 데이터들과 end_date 컬럼에 들어있는 데이터들을 비교하는 것이므로 NOT IN 안에는 컬럼의 이름 end_date가 아니라 데이터가 들어가야합니다.
그 데이터들을 end_date 컬럼에서 추출하기 위해 서브쿼리 SELECT end_date ... 를 작성하는 것입니다.