inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

2번 문제 풀이

NOT IN은 왜 안될까요..?

해결된 질문

248

헬로월드

작성한 질문수 20

1

위 쿼리가 정답 쿼리인데요. 이 쿼리를 아래와 같이 바꾸면 답이 안되는 이유가 무엇일까요...?

sql

답변 2

3

지식공유자 J

문제의 Sample Input을 예시로 설명 드리겠습니다.

SELECT N FROM BST WHERE N NOT IN (SELECT DISTINCT P from BST) 

위 쿼리를 실행하면 N을 하나하나씩 2, 5, 8, Null과 비교해서 N!=2, N!=5, N!=8, N!=null, 이 4가지 연산 모두 True 값을 반환하는 경우에만 N이 출력됩니다. 

그런데 null과의 비교연산에서는 True도 False도 아닌 Unknown 값을 반환하게 되므로, 어떤 N도 N!=null 을 통과하지 못합니다.

WHERE P IS NOT NULL 조건을 넣어주면 N과 null의 비교연산을 하지 않아도 되니 N!=2, N!=5, N!=8, 이렇게 3가지 조건을 모두 만족하는 값들이 출력됩니다.

0

circlejoon

웬만하면 Not in 보단 in으로 쓰는게 안전하겠군요 감사합니다.

강의기간 연장문의

0

107

2

HackerRank : Weather Observation Station 11 문제풀이

0

122

1

SET4의 3번 자리바꾸기 문제 다른 풀이

0

196

1

set 3의 3번 문제- 데이터의 개수가 짝수일 때 질문

0

275

2

set 1 - 2번 문제풀이

0

267

1

세트2번 Binary Tree Nodes 질문입니다!

0

230

2

고급문제풀이set1 3번 문제

0

254

2

고급문제풀이 3번 INNERJOIN 활용시 오류

0

274

1

회사일하다 보니까 다 못듣고 수강기간이 다끝나가는데 .,. 수강기간 연장은 어떻게 할수 있나요?ㅜㅜ

0

324

1

[Weather 20 ] 2번째 쿼리도 따라 했는데 왜 다 실패일까요?

0

381

1

[Weather 20] 따라 했는데 왜 작동 안해요?

0

281

1

weather-20 왜 작동 안하는건가요?

0

233

1

Ollivander's Inventory 윈도우 함수 min() over

0

319

1

LeetCode 626. Exchange Seats 리트코드 제출 오류

0

510

2

섹션4에 3번 문제풀이 질문

0

386

2

SQL Project Planning 풀이 관련 문의

0

589

2

섹션 1번 4번문제 풀이

1

289

1

섹션1 2번 문제풀이 강의

0

307

1

set2 - 1 같게 작성했는데 답이 이상합니다.

0

289

1

max함수를 써서 풀지는 못하나요?

0

306

1

윈도우 함수를 이용해서 풀고 싶어서 써봤습니다. 더 간단하게 줄일 수 있을까요?

0

265

1

(Hacker Rank)Binary Tree 문제 질문

0

329

1

쿼리 두개로 작성하고 싶지 않아 하나로 어떻게든 만들어 봤습니다.

0

297

1

이런 풀이는 왜 안되는지 궁금해요

0

279

1