서브쿼리(subquery)란 다른 쿼리 내부에 포함되어 있는 SELETE 문을 의미합니다.
서브쿼리를 포함하고 있는 쿼리를 외부쿼리(outer query)라고 부르며, 서브쿼리는 내부쿼리(inner query)라고도 부릅니다.
서브쿼리는 반드시 괄호(())로 감싸져 있어야만 합니다.
MySQL에서 서브쿼리를 포함할 수 있는 외부쿼리는 SELECT, INSERT, UPDATE, DELETE, SET, DO 문이 있습니다.
이러한 서브쿼리는 또 다시 다른 서브쿼리 안에 포함될 수 있습니다
서브쿼리는 SELECT 문의 FROM 절에서도 사용할 수 있습니다.
이때 서브쿼리에 의해 선택된 결과 집합은 FROM 절에서 하나의 테이블로써 사용됩니다.
SELECT 문의 FROM 절에서 사용되는 모든 테이블에는 이름이 필요합니다.
따라서 FROM 절에서 사용되는 서브쿼리는 위의 문법처럼 반드시 이름을 정의해야 합니다.
참조