-
카테고리
-
세부 분야
데이터베이스
-
해결 여부
미해결
10분 26초 쿼리문 문의 드려요, P2.CategoryID = P1.CategoryID
21.10.19 23:26 작성 조회수 207
0
SELECT
ProductID, ProductName, CategoryID, Price
FROM Products AS P1
WHERE Price < (SELECT AVG(Price) FROM Products AS P2
WHERE P2.CategoryID = P1.CategoryID);
전체 코드 중에서
WHERE P2.CategoryID = P1.CategoryID
요 코드가 이해가 안갑니다.
WHERE 절이 필요없지 않나요?
어차피 P2.CategoryID = P1.CategoryID
의 값은 , Products 의 CategoryID 값과 똑같으니까요?
혹시 제가 잘못 생각하고 있는건지 궁금해서 문의 드립니다.
WHERE 절을 추가한 이유가 궁금합니다.
답변을 작성해보세요.
0
0
얄팍한 코딩사전
지식공유자2021.10.19
해당 절을 빼고 쿼리를 돌려보세요. 갯수가 2개 더 나올겁니다. (각 50개, 52개)
P2에서는 P1과 CaregoryID가 같은 행만 골라서 값을 비교해야 하는데 해당 절이 없으면 다 가져오게 됩니다.
둘 다 Products 테이블이지만, 서브쿼리 밖의 것과 안의 것은 완전히 별개의 테이블이기 때문에 조건으로 묶어줘야 하는거에요.
(같은 종이를 복사해서 두 명이 따로 들고 있다고 생각해보세요. '~행 말하는 거야'하고 서로 알려줘야 소통이 되겠죠)
찬찬히 쿼리를 살펴보시면 이해되실거에요. 😊
0
답변 3