더북(TheBook)

10.5 세미 조인과 안티 조인

 

 

이전 장에서 조인에 대해 알아봤는데요. 내부 조인, 외부 조인 외에도 세미 조인과 안티 조인이란 것이 있다고 했습니다. 이 두 조인은 서브쿼리와 같이 사용하는 조인이므로 이번 장에서 설명하도록 하죠.

먼저 세미 조인은 이전 절에서 알아본 중첩 서브쿼리에서 사용한 조인 방법을 말합니다. 즉, 메인쿼리에서 사용된 테이블과 서브쿼리 결과를 조인하는 것입니다. 이미 이전 절에서 어떤 식으로 조인이 이루어졌는지 알아봤으니 세미 조인에 대해서는 설명할 내용이 별로 없군요. 여기서는 추가로 한 가지 방법만 더 소개하죠.

보통 세미 조인은 동등 연산자나 IN 연산자를 많이 사용하는데요. EXISTS 연산자를 사용하기도 합니다. 쿼리 구문을 살펴볼까요?

쿼리 10-7 EXISTS 연산자를 사용한 세미 조인

SELECT *
  FROM dept_master a      
 WHERE EXISTS ( SELECT 1
                  FROM emp_master b
                 WHERE b.age BETWEEN 40 AND 49
                   AND a.dept_id = b.dept_id
              );

 

▲ 그림 10-7 쿼리 10-7을 실행한 결과

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.