-
MySQL Subquery 요약공부하기/데이터베이스 2023. 2. 10. 14:47
subquery :
- select, insert, update, delete와 같은 다른 쿼리 내에 중첩된 쿼리이다.
- 서브쿼리 내 또 다른 서브쿼리가 중첩될 수 있다.
- 괄호 안에서 사용해야한다.
- 비교 연산자 (=, >, >=, <, <= )를 사용하여 하위 쿼리에서 반환되는 단일 값을 where 조건으로 사용할 수 있다.
- IN, NOT IN 오퍼레이터를 사용하여 하위 쿼리에서 반환되는 하나 이상의 값을 where 조건으로 사용할 수 있다.
- 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