9.3.3 IN과 EXISTS 연산자를 사용한 조건 서브쿼리
조건 서브쿼리에서 가장 많이 사용하는 연산자를 꼽는다면 단연 IN과 EXISTS입니다. 이 장에서는 마지막으로 두 연산자를 알아보겠습니다.
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);