<NOT IN 연산자>
- 특정 쿼리에서 검색한 데이터 중 다른 쿼리에 없는 데이터를 검색하는 방법
▼ 자기 밑에 직속 부하 사원이 한 명도 없는 사원들을 출력하는 쿼리
▷ 직속부하가 없는 사원은 EMPNO가 MGR이 아닌 사원들 출력!
▶ mgr이 관리자 번호인데, empno 이 없는 사원들을 출력
▷ 만약 서브 쿼리문 WHERE절에 mgr is not null을 사용하지 않고 실행한다면?
아무것도 나오지 않는다.
▶ mgr에 NULL값이 하나라도 있기 때문에.
서브쿼리에서 메인 쿼리로 NULL 값이 하나라도 리턴되면 결과가 출력되지 않는다.
▷ 왜냐면 NOT IN 으로 작성한 서브 쿼리문은 아래와 같기 때문
△ TRUE AND TURE AND TURE AND TURE AND TURE AND TURE AND NULL
이기 때문에 결과는 NULL임.
▶ 전체가 NULL이되어버려서 결과가 출력되지 않음.
▶ ▶ NOT IN 사용할 때는 NULL값이 리턴되지 않게 해야하는 것이 중요
'데이터베이스 > SQL' 카테고리의 다른 글
SQL 서브쿼리 - HAVING절 (0) | 2024.01.11 |
---|---|
SQL 서브쿼리 - EXISTS / NOT EXISTS (0) | 2024.01.11 |
SQL 다중 행 서브쿼리 (0) | 2024.01.10 |
SQL 단일행 서브쿼리 (0) | 2024.01.10 |
SQL 데이터 차이를 출력하기, 집합 연산자 MINUS (1) | 2024.01.06 |