ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MySQL Subquery 요약
    공부하기/데이터베이스 2023. 2. 10. 14:47

    subquery : 

    1. select, insert, update, delete와 같은 다른 쿼리 내에 중첩된 쿼리이다.
    2. 서브쿼리 내 또 다른 서브쿼리가 중첩될 수 있다.
    3. 괄호 안에서 사용해야한다.
    4. 비교 연산자 (=, >, >=, <, <= )를 사용하여 하위 쿼리에서 반환되는 단일 값을 where 조건으로 사용할 수 있다.
    5. IN, NOT IN 오퍼레이터를 사용하여 하위 쿼리에서 반환되는 하나 이상의 값을 where 조건으로 사용할 수 있다.
    6. from 절에서도 사용할 수 있다.
     
     
     

    문법

    SELECT 
        lastName, firstName
    FROM
        user
    WHERE
        user_id IN (SELECT user_id FROM user_info);

     

    예제

    [CASE_1]     # 비교연산자를 사용한 서브쿼리
        SELECT 
            customerNumber,  
            amount
        FROM
            payments
        WHERE
            amount = (SELECT MAX(amount) FROM payments);
        
        
    [CASE_2]     #  IN, NOT IN을 사용한 서브쿼리
        SELECT 
            customerName
        FROM
            customers
        WHERE
            customerNumber NOT IN (SELECT DISTINCT
                    customerNumber
                FROM
                    orders);
                
    [CASE_3]     # from절에서 사용된 서브쿼리
        SELECT 
            MAX(items), 
            MIN(items), 
            FLOOR(AVG(items))
        FROM
            (SELECT 
                orderNumber, COUNT(orderNumber) AS items
            FROM
                orderdetails
            GROUP BY orderNumber) AS lineitems;
                    
    [CASE_3]     # EXIST와 함께 사용하는 subquery 기본
        SELECT 
            *
        FROM
            table_name
        WHERE
            EXISTS( subquery );
    
    --> 일반적으로 IN을 사용하는거보다 EXIST를 사용하는게 더 빠르다.

    '공부하기 > 데이터베이스' 카테고리의 다른 글

    MySQL CTE 요약  (0) 2023.02.10
    MySQL EXISTS 요약  (0) 2023.02.10
    MySQL GROUP BY 요약  (0) 2023.02.09
    MySQL Join 요약  (0) 2023.02.09
    MySQL LIMIT 요약  (0) 2023.02.09
Designed by Tistory.