서브 쿼리
포스트
취소

서브 쿼리

관련 용어

  • 서브 쿼리 (sub query)
    • 실행하려는 SELECT 문의 안에 포함된 다른 SELECT 문
    • 부속 질의문 또는 서브 질의문이라고도 부른다.
    • 종류
      • 단일 행 부속 질의문
        • 하나의 행을 결과로 반환하는 부속 질의
        • =나 <>같은 일반 비교 연산자를 사용할 수 있다.
      • 다중 행 부속 질의문
        • 하나 이상의 행을 결과로 반환하는 부속 질의문
        • 일반 비교 연산자를 사용할 수 없다.
  • 메인 쿼리 (main query)
    • 서브 쿼리를 포함하는 질의문
    • 상의 질의문 또는 주 질의문이라고도 부른다.

다중 행 부속 질의문에 사용 가능한 연산자

  • IN
    • 부속 질의문의 결과 중 일치하는 것이 있으면 참으로 취급한다.
  • NOT IN
    • 부속 질의문의 결과 중 일치하는 것이 없으면 참으로 취급한다.
  • EXISTS
    • 부속 질의문의 결과가 하나라도 존재한다면 참으로 취급한다.
  • NOT EXISTS
    • 부속 질의문의 결과가 존재하지 않는다면 참으로 취급한다.
  • ALL
    • 부속 질의문의 결과 모두와 비교한 결과가 참이면 참으로 취급한다.
    • 비교 연산자와 함께 사용한다.
  • ANY 또는 SOME
    • 부속 질의문의 결과 모두와 비교한 결과 중에서 하나라도 참이면 참으로 취급한다.
    • 비교 연산자와 함께 사용한다.

단일 행 부속 질의문 예시

SELECT
    *
FROM
    MEMBER
WHERE
    MOBILE_NO = (
                    SELECT
                        MOBILE_NO
                    FROM    
                        EVENT_HISTORY
                    WHERE
                        EVENT_NO = 372
                        AND USER_ID = 'test09'
                )

다중 행 부속 질의문 예시

SELECT
    *
FROM
    MEMBER
WHERE
    EXISTS (
                SELECT
                    *
                FROM
                    EVENT_HISTORY
                WHERE
                    EVENT_HISTORY.USER_ID = MEMBER.USER_ID
            );

/* 해설 */
/*
    아래 쿼리는 AGE = 10 또는 AGE = 20 또는 AGE = 30이라는
    복수 조건 중에서 하나라도 만족하는 데이터를 검색한다.
*/
SELECT
    *
FROM
    MEMBER
WHERE
    AGE = ANY (10, 20, 30);
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.