>데이터 베이스 >MySQL 튜토리얼 >MySQL JOIN 쿼리에서 0 카운트를 표시하는 방법은 무엇입니까?

MySQL JOIN 쿼리에서 0 카운트를 표시하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-02 16:11:12889검색

How to Display Zero Counts in MySQL JOIN Queries?

MySQL 카운트 쿼리에서 0 카운트 표시

데이터베이스 관리 영역에서 카운팅 작업은 집계 정보를 검색하는 데 자주 사용됩니다. 그러나 JOIN 쿼리로 작업할 때 특히 누락된 값이나 null 값이 있는 경우 0 개수를 표시하는 것이 어려울 수 있습니다. 이 문제는 테이블의 모든 행에 대한 값을 계산하려고 할 때 발생하지만 일부 행에는 조인된 테이블에 일치하는 항목이 없습니다.

문제: 0 개수 누락

다음 시나리오를 고려하십시오. Employee와 mailingSubscriptions라는 두 개의 테이블이 있습니다. mailingSubscriptions 테이블에는 직원에 대한 구독 정보가 포함되어 있으며 각 직원은 고유한 EmployeeName을 가지고 있습니다. 구독이 없는 직원(예: 0개 표시)을 포함하여 각 직원과 연결된 구독 수를 확인하려고 합니다.

다음 쿼리를 사용합니다.

Select COUNT(c.Name) 
From Employee 
    INNER JOIN mailingSubscriptions as m ON c.Name = m.EmployeeName;

검색만 수행합니다. mailingSubscriptions 테이블에 항목이 하나 이상 있는 직원을 계산합니다. 구독하지 않은 직원은 결과에서 제외됩니다.

해결책: 왼쪽 JOIN 및 GROUP BY

이 문제를 해결하고 모든 직원에 대한 개수를 얻으려면 다음을 사용할 수 있습니다. LEFT JOIN 및 GROUP BY 절. LEFT JOIN을 사용하면 mailingSubscriptions 테이블에 일치하는 행이 없더라도 Employee 테이블의 모든 행이 결과에 포함됩니다. 그러면 GROUP BY 절이 결과를 직원 이름별로 그룹화하여 각 직원의 구독 수를 계산할 수 있습니다.

SELECT c.name, count(m.mailid)
FROM Employee 
   LEFT JOIN mailingSubscriptions as m ON c.Name = m.EmployeeName
GROUP BY c.name;

이 수정된 쿼리를 사용하여 이제 다음을 포함한 모든 직원의 구독 수를 검색합니다. 구독자가 없는 사람들. 이를 통해 직원의 구독 상태에 관계없이 직원의 구독 데이터를 전체적으로 볼 수 있습니다.

위 내용은 MySQL JOIN 쿼리에서 0 카운트를 표시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.