본문 바로가기

Database/MySQL

ALL과 ANY 차이점

ALL

 : 검색 조건이 서브 쿼리 결과의 모든 값에 만족하면 참이 되는 연산자

 

ANY

-     검색 조건이 서브 쿼리 결과 중에서 하나 이상에 만족하면 참이 되는 연산자

 

 

예제를 통해 확인

-- ALL
-- 2번 고객이 주문한 도서의 최고 주문수량 보다 더 많은 도서를 구매한 고객의
-- 고객번호, 주문번호, 주문수량 출력
-- (2번 고객이 주문한 모든 주문에서 발생한 주문수량 보다 더 크면 됨)
SELECT clientNo, bsNo, bsQty FROM bookSale
WHERE bsQty > ALL (SELECT bsQty FROM bookSale WHERE clientNo = '2');
-- ANY
-- 2번 고객보다 한 번이라도 더 많은 주문을 한 적이 있는 고객의
-- 고객번호, 주문번호, 주문수량 출력
-- 최소 한 번이라도 크면 됨
SELECT clientNo, bsNo, bsQty FROM bookSale
WHERE bsQty > ANY (SELECT bsQty FROM bookSale WHERE clientNo = '2');
-- 2번 고객 자신도 포함

-- 2번 고객 자신을 빼고 출력하려면?
SELECT clientNo, bsNo, bsQty FROM bookSale
WHERE bsQty > ANY (SELECT bsQty FROM bookSale WHERE clientNo = '2') AND clientNo != '2';

'Database > MySQL' 카테고리의 다른 글

SQL 내장 함수  (0) 2021.11.26
테이블 복사 및 복사 시 주의사항  (0) 2021.11.26
IN과 EXIST의 차이  (0) 2021.11.26
조인 VS 서브 쿼리  (0) 2021.11.26
Subquery (서브쿼리)  (0) 2021.11.26