집 >데이터 베이스 >MySQL 튜토리얼 >MySQL JOIN 쿼리에서 0 카운트를 표시하는 방법은 무엇입니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!