首頁 >資料庫 >mysql教程 >如何在相關表格的 MySQL COUNT 查詢中包含零計數?

如何在相關表格的 MySQL COUNT 查詢中包含零計數?

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 運算子確保 Employee 表中的所有行都包含在結果中,即使它們在 mailingSubscriptions 表中沒有匹配的行。

COUNT(m.MailId) 傳回每個行的訂閱數員工。透過按 c.Name 對結果進行分組,我們可以獲得每位員工的計數,包括那些沒有訂閱的員工。

此調整後的查詢提供了更全面的資料視圖,顯示了在 mailingSubscriptions 中有條目的員工,沒有任何條目的員工計數為 0。

以上是如何在相關表格的 MySQL COUNT 查詢中包含零計數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn