작성
·
358
0
sql 섹션 5의 돈가스 판매금액,모두얼마나와요?
여기서 where 말고 and 를 쓰시는데
두개가 같은 의미를 가지고있는거 맞나요?
답변 1
0
JOIN에서 AND 조건을 주는 것과
WHERE 절에서 조건을 주는 것은
기능적으로는 동일합니다.
하지만 성능상으로 차이가 있을 수 있습니다.
즉, JOIN 시 AND 조건을 주는 것은
조인 시에 필터링을 하여 불필요한 레코드를 제거하고,
WHERE 절에서 AND 조건을 주는 것은
조인 후에 필터링을 하는 방식입니다.
쿼리에 따라서 어떤 방식이 더 효율적인지 판단하여 사용하시면 됩니다.
정답코드는 다음과 같습니다.
SELECT
SUM(products.price * order_details.count) AS sales -- 판매금액 총합
FROM
products
JOIN order_details ON
order_details.product_id = products.id
AND
products.id = 1
JOIN orders ON
orders.id = order_details.order_id
AND
orders.status = 'DELIVERED'
;
먼저 "상품"에 "주문내역"을 붙였는데요
이때 FK와 PK가 일치해야고,
돈가스의 PK가 1이므로,
AND조건을 사용했습니다
WHERE절을 사용해서도 풀수 있지만,
JOIN과 함 AND를 사용하는게
조인 대상을 줄일 수 있어
더 빠른 성능(퍼포먼스)이 예상됩니다