>데이터 베이스 >MySQL 튜토리얼 >관련 테이블에 대한 MySQL COUNT 쿼리에 0 카운트를 포함하는 방법은 무엇입니까?

관련 테이블에 대한 MySQL COUNT 쿼리에 0 카운트를 포함하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-29 16:41:14725검색

How to Include Zero Counts in MySQL COUNT Queries for Related Tables?

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

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