더북(TheBook)

쿼리 10-6은 서브쿼리에서 사원정보와 주소정보 테이블을 조인하여 주소가 ‘중구’와 ‘서대문구’에 속하는 사원의 성별과 나이를 반환합니다. 이 서브쿼리의 경우 반환 컬럼이 하나가 아닌 2개이고, 반환되는 로우 역시 한 개 이상입니다. 그리고 메인쿼리의 WHERE 조건절에서는 사원정보 테이블의 성별과 나이 컬럼 값이 서브쿼리에서 반환하는 성별과 나이가 같은 건을 조회하고 있습니다. 그래서 최종 결과로 4개의 로우가 조회되었습니다. 서브쿼리 부분만 떼어 별도로 실행해 보면 실제로 이 서브쿼리가 반환하는 결과는 3건을 반환하는데, 45세 남성이 2명이므로 총 4건이 조회된 것이죠. 이처럼 중첩 서브쿼리에서는 다중 행, 다중 컬럼을 반환할 수 있습니다.

지금까지 메인쿼리에서 사용되는 위치에 따른 서브쿼리 유형을 살펴봤는데요. 스칼라 서브쿼리, 인라인 뷰, 중첩 서브쿼리란 용어 자체보다는 실제로 서브쿼리를 적재적소에 올바른 방법으로 사용하는 것이 중요합니다. 책에 나온 예제 쿼리를 기반으로 조금씩 변경해 가면서 그 결과가 어떻게 변하는지 알아보고, 오류 발생 시 오류의 원인을 파악하고 수정하는 과정을 거쳐야 비로소 쿼리 작성에 능숙해질 것입니다.

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