위치에 따른 서브쿼리 구분
| SELECT 절 |
스칼라 서브쿼리(Scalar Subquery) |
| FROM 절 |
인라인 뷰(Inline View) |
| WHERE 절, HAVING 절 |
중첩 서브쿼리(Nested Subquery) |
1. 스칼라 서브쿼리(Scalar Subquery)
- 주로 SELECT 절에 위치하지만 컬럼이 올 수 있는 대부분의 위치에 사용할 수 있다.
- 컬럼 대신 사용되므로
반드시 하나의 값만을 반환해야 한다. (그렇지 않을 경우 에러 발생)
SELECT M.PRODUCT CODE,
(SELECT S.PRODUCT_NAME
FROM PRODUCT S
WHERE S.PRODUCT_CODE = M.PRODUCT_CODE) AS PRODUCT_NAME,
M.MEMBER_ID,
M.CONTENT
FROM PRODUCT_REVIEW M;
2. 인라인 뷰(Inline View)
- FROM 절 등 **
테이블명**이 올 수 있는 위치에 사용 가능
SELECT M.PRODUCT_CODE,
S.PRODUCT_NAME,
S.PRICE,
M.MEMBER_ID,
M.CONTENT
FROM PRODUCT_REVIEW M,
(SELECT PRODUCT_CODE,
PRODUCT_NAME,
PRICE
FROM PRODUCT) S
WHERE M.PRODUCT_CODE = S.PRODUCT_CODE;
3. 중첩 서브쿼리(Nested Subquery)