Mysql

서브쿼리 연산자

흑우흐규 2023. 4. 27. 17:56

~ ALL 서브쿼리의 모든 결과에 대해 ~하다

SELECT * FROM Products
WHERE Price > ALL (
SELECT Price FROM Products
WHERE CategoryID = 2
);

요런 식으로 사용하는데 이것은 Products를 가져오는데 CategoryID = 2인 Products의 모든 Price 보다 큰 값을 가져오는 것이다

~ ANY 서브쿼리의 하나 이상의 결과에 대해 ~하다

SELECT
CategoryID, CategoryName, Description
FROM Categories
WHERE
CategoryID = ANY
(SELECT CategoryID FROM Products
WHERE Price > 50);
요런 식으로 쓴다!


EXISTS / NOT EXISTS 연산자: 존재여부를 물어보는 연산자이다!

SELECT
CategoryID, CategoryName
-- ,(SELECT MAX(P.Price) FROM Products P
-- WHERE P.CategoryID = C.CategoryID
-- ) AS MaxPrice
FROM Categories C
WHERE EXISTS (
SELECT * FROM Products P
WHERE P.CategoryID = C.CategoryID
AND P.Price > 80
);

존재하는 것이 있다면 다 출력하는 느낌

'Mysql' 카테고리의 다른 글

숫자 함수  (0) 2023.04.27
문자열 함수  (0) 2023.04.27
시간 날짜 함수  (0) 2023.04.27
조건문  (0) 2023.04.27
비상관 서브쿼리  (0) 2023.04.27