>데이터 베이스 >MySQL 튜토리얼 >외부 조인을 사용하여 MySQL에서 직원의 0 값을 포함한 구독을 계산하려면 어떻게 해야 합니까?

외부 조인을 사용하여 MySQL에서 직원의 0 값을 포함한 구독을 계산하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-01 09:22:14628검색

How Can I Count Subscriptions Including Zero Values for Employees in MySQL Using Outer Joins?

OUTER JOINS를 사용하여 MySQL에서 Null 개수 처리

관계형 데이터베이스로 작업할 때 여러 데이터베이스에 걸쳐 쿼리할 때 0 값을 표시하는 것이 어려울 수 있습니다. 테이블. 예를 들어, Employee와 mailingSubscriptions라는 두 개의 테이블이 있는 질문에 설명된 시나리오를 생각해 보세요. Employee 테이블에는 직원에 대한 기본 정보가 포함되어 있고 mailingSubscriptions 테이블은 이메일 구독 상태를 추적합니다.

각 직원의 구독 수를 계산하려면 다음 쿼리를 사용할 수 있습니다.

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

그러나 이 쿼리는 mailingSubscriptions 테이블에 항목이 하나 이상 있는 직원의 수만 반환합니다. 직원이 아직 이메일을 구독하지 않은 경우 해당 개수는 결과에서 생략됩니다.

구독하지 않은 직원에 대해 0 값을 포함하려면 외부 조인을 사용해야 합니다. 외부 조인을 사용하면 일치하는 값이 없더라도 두 테이블의 행을 결합할 수 있습니다. 이 경우 mailingSubscriptions 테이블에 해당 행이 있는지 여부에 관계없이 Employee 테이블의 모든 행을 보존하는 왼쪽 외부 조인을 사용합니다.

다음 쿼리는 다음을 사용합니다. 구독이 없는 직원을 포함하여 각 직원의 구독 수를 계산하기 위한 왼쪽 외부 조인:

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

GROUP BY c.name 절은 다음을 보장합니다. 각 직원의 구독을 별도로 계산합니다. 쿼리 결과는 직원 이름 및 해당 구독 수 목록이 되며, 아직 이메일을 구독하지 않은 직원의 경우 값이 0으로 표시됩니다.

위 내용은 외부 조인을 사용하여 MySQL에서 직원의 0 값을 포함한 구독을 계산하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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