집 >데이터 베이스 >MySQL 튜토리얼 >관련 테이블에 대한 MySQL COUNT 쿼리에 0 카운트를 포함하는 방법은 무엇입니까?
MySQL COUNT 쿼리에서 0 카운트가 누락되는 문제 해결
각 고객의 구독 수를 계산하려고 할 때 일반적으로 다음과 같은 문제가 발생합니다. 쿼리가 관련 테이블에 항목이 있는 고객에 대한 개수만 반환하는 문제가 발생합니다. 이 문제를 해결하고 구독이 없는 고객을 포함하려면 대체 접근 방식이 필요합니다.
다음 시나리오를 고려하십시오. Employee 및 mailingSubscriptions라는 두 개의 테이블이 있습니다. Employee 테이블에는 직원에 대한 정보가 포함되고 mailingSubscriptions 테이블에는 구독에 대한 세부 정보가 저장됩니다.
각 직원의 구독 수를 얻으려면 다음과 같은 간단한 쿼리를 사용하면 됩니다.
SELECT COUNT(c.Name) FROM Employee c INNER JOIN mailingSubscriptions AS m ON c.Name = m.EmployeeName;
그러나 , 이 쿼리는 구독이 하나 이상 있는 직원에 대한 결과만 반환합니다. 구독하지 않은 직원을 포함하고 0 개수를 표시하기 위해 MySQL은 왼쪽 조인이라는 또 다른 솔루션을 제공합니다.
SELECT c.Name, COUNT(m.MailId) FROM Employee c LEFT JOIN mailingSubscriptions AS m ON c.Name = m.EmployeeName GROUP BY c.Name;
이 수정된 쿼리에서는 왼쪽 조인을 사용하여 Employee 테이블과 mailingSubscriptions 테이블을 연결합니다. LEFT JOIN 연산자는 mailingSubscriptions 테이블에 일치하는 행이 없더라도 Employee 테이블의 모든 행이 결과에 포함되도록 합니다.
COUNT(m.MailId)는 각 행에 대한 구독 수를 반환합니다. 직원. 결과를 c.Name별로 그룹화하면 구독자가 없는 직원을 포함하여 모든 직원의 수를 얻을 수 있습니다.
이 조정된 쿼리는 데이터에 대한 보다 포괄적인 보기를 제공하여 c.Name의 구독 수를 모두 보여줍니다. mailingSubscriptions에 항목이 있는 직원 및 항목이 없는 직원의 개수는 0입니다.
위 내용은 관련 테이블에 대한 MySQL COUNT 쿼리에 0 카운트를 포함하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!