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 중국어 웹사이트의 기타 관련 기사를 참조하세요!