더북(TheBook)

9.3.3 IN과 EXISTS 연산자를 사용한 조건 서브쿼리

조건 서브쿼리에서 가장 많이 사용하는 연산자를 꼽는다면 단연 INEXISTS입니다. 이 장에서는 마지막으로 두 연산자를 알아보겠습니다.

 

IN 연산자

IN 연산자는 비교할 칼럼 값에 비교 대상 값 중 하나라도 포함되어 있다면 모두 조회하는 연산자입니다. IN 연산자의 기본 사용법은 5장 데이터 조회하고 정렬하기에 나옵니다. 예를 들어, WHERE 절에서 column IN ('A', 'B', 'C')라는 조건을 주면 column 값이 ‘A’나 ‘B’ 또는 ‘C’인 건을 검색합니다.

이런 IN 연산자와 조건 서브쿼리를 같이 사용하면 조건 서브쿼리가 반환하는 값에서도 같은 방식으로 작동합니다. 그리고 IN 연산자는 ANY, SOME, ALL 연산자와는 달리 다른 연산자 없이 단독으로 사용합니다. 그럼 IN 연산자를 어떻게 사용하는지 예제로 알아보죠.

코드 9-22

SELECT ranks, movie_name, director
  FROM box_office
 WHERE YEAR(release_date) = 2019
   AND movie_name IN (SELECT movie_name
                        FROM box_office
                       WHERE YEAR(release_date) = 2018);
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.