연산을 여러번 해야 하는 경우가 종종 있다.
같은 테이블을 두 번 접근해야 하거나, 연산 결과를 다른 연산에 사용해야 하는 경우가 있다.
이렇게 연산을 두 번 이상 해야 할 경우를 줄이기 위한 문법이 존재한다.
SubQuery는 두 번 이상 연산해야 할 때, 쿼리 문을 아주 길게 쓰지 않고, 하나의 쿼리 문에서 사용해 더 효율적으로 SQL문을 만들 수 있게 하는 문법이다.
Subquery의 기본 구조는 sub라는 명칭에서 보듯, 쿼리 안에 서브로 들어가는 구문이라 보면 된다. (기본 구문에 괄호를 넣어서 그 괄호안에 있는 쿼리를 subquery로 보면 된다)
select column1, special_column
from
(
select column1, column2 special_column
from table1
) a
(table1에서 컬럼1과 컬럼2를 special_column으로) 받아와 컬럼1과 special_column을 출력하는 것
단순히 쿼리 문을 두 개 사용할 것을 하나로 줄이는 것인데, 이는 두번째 쿼리문을 첫번째 쿼리문의 바로 아래에 붙여넣는다는 느낌으로 생각하면 편하다.
그러므로 복잡하게 생각하는 것보다 쿼리를 두 개 사용한다고 생각하고 풀면 어느 정도 수월하게 풀 수 있을 것이다.