解決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中文網其他相關文章!