• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

홍팍 선생님 질문입니다! sql!

23.02.07 14:57 작성 조회수 275

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를 사용하는게
조인 대상을 줄일 수 있어
더 빠른 성능(퍼포먼스)이 예상됩니다