> 데이터 베이스 > MySQL 튜토리얼 > MySQL에서 제품이 없는 카테고리를 포함하여 모든 카테고리와 최소/최대 제품 가격을 검색하려면 어떻게 해야 합니까?

MySQL에서 제품이 없는 카테고리를 포함하여 모든 카테고리와 최소/최대 제품 가격을 검색하려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2024-12-19 00:07:10
원래의
854명이 탐색했습니다.

How Can I Retrieve All Categories and Their Minimum/Maximum Product Prices, Including Categories Without Products, in MySQL?

MySQL에서 대응이 누락된 여러 테이블에서 선택

한 테이블에 모든 행이 없는 시나리오에서도 여러 테이블에 걸쳐 효과적으로 쿼리하려면 다른 항목에 해당 항목이 있으면 MySQL은 외부 조인 개념을 제공합니다. 카테고리와 제품 테이블이 있는 온라인 상점의 시나리오를 생각해 보십시오.

모든 카테고리를 검색하고 각각에 대한 최소 및 최대 가격을 계산한다고 가정해 보겠습니다. 그러나 제품이 없는 카테고리를 포함하고 최소 및 최대 가격을 0으로 설정하려고 합니다. 원래 쿼리:

SELECT
sc.*, MIN(s.price) AS minp, MAX(s.price) AS maxp
FROM categories AS sc, products AS s
WHERE s.ownerid=sc.id
GROUP BY sc.id
로그인 후 복사

내부 조인 조건으로 인해 제품이 없는 카테고리를 제외합니다. 모든 카테고리를 포함하기 위해 LEFT JOIN을 사용합니다.

SELECT
    sc.*,
    IFNULL(MIN(s.price), 0) AS minp,
    IFNULL(MAX(s.price), 0) AS maxp
FROM categories AS sc
LEFT JOIN products AS s
ON s.ownerid = sc.id
GROUP BY sc.id
로그인 후 복사

LEFT JOIN은 카테고리(sc) 테이블의 모든 행을 유지하므로 쿼리에서 제품이 없는 카테고리를 포함하여 모든 카테고리를 검색할 수 있습니다. IFNULL 함수는 null 값(해당 제품이 없을 때 발생)을 0으로 설정하여 minp 및 maxp가 항상 유효한 값으로 반환되도록 합니다.

이 접근 방식을 사용하면 쿼리가 카테고리에 상관없이 모든 카테고리를 검색할 수 있습니다. 해당 상품이 있는지 확인하고 누락된 가격 정보에 대해 0을 올바르게 할당합니다.

위 내용은 MySQL에서 제품이 없는 카테고리를 포함하여 모든 카테고리와 최소/최대 제품 가격을 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿