작성
·
483
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
인수님, 안녕하세요. 저희 백문이불여일타 SQL 강의를 기초부터 모두 학습하신 것으로 확인되는데 아직 어려운 부분이 있으시다면 복습을 추천드립니다.
혹시 저희가 다루지 않은 것 중 추가 학습을 원하는 문법이 있으시다면 말씀 부탁드려요. 도움이 되는 자료 탐색에 도움을 드리겠습니다!
또한 본문 질문에 대한 AI 답변에 추가로 설명을 드리겠습니다.
start_date 컬럼에 들어있는 데이터들과 end_date 컬럼에 들어있는 데이터들을 비교하는 것이므로 NOT IN 안에는 컬럼의 이름 end_date가 아니라 데이터가 들어가야합니다.
그 데이터들을 end_date 컬럼에서 추출하기 위해 서브쿼리 SELECT end_date ... 를 작성하는 것입니다.