다음 쿼리가 FALSE를 반환하는 이유를 올바르게 설명한 것은?
상황: OrderDeta
다음 쿼리가 FALSE를 반환하는 이유를 올바르게 설명한 것은?
상황: OrderDetails에서 Quantity = 10인 레코드들의 ProductID가 42, 41, 10으로 서로 다름
SELECT ProductName
FROM Products
WHERE ProductID = ALL (SELECT ProductID FROM OrderDetails WHERE Quantity = 10);
상황: OrderDetails에서 Quantity = 10인 레코드들의 ProductID가 42, 41, 10으로 서로 다름
정답: B
⦁ 서브쿼리 결과: ProductID 42, 41, 10을 반환
⦁ ALL 조건의 의미:
ProductID = ALL (42, 41, 10)
⦁ ProductID가 42와 같으면서 동시에
⦁ ProductID가 41과 같으면서 동시에
⦁ ProductID가 10과 같아야 함
⦁ 논리적 불가능: 하나의 값이 서로 다른 세 값과 동시에 같을 수 없습니다
⦁ 결과: 조건을 만족하는 ProductID가 존재하지 않으므로 FALSE 반환
⦁ 이런 경우 ALL보다는 ANY나 IN을 사용하는 것이 적절합니다
💡 학습 팁
이 문제를 포함한 MySQL 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.