解決SQL 查詢問題:在COUNT 聚合中顯示零計數
在所呈現的場景中,目標是確定所有的訂閱計數員工,即使是那些在郵件訂閱表中沒有條目的員工。使用內部聯結的初始查詢僅傳回郵件訂閱表中具有符合記錄的員工計數,不包括沒有訂閱的員工。
要解決此問題,請考慮在查詢中使用左聯結 (LEFT JOIN)。左側聯接保留左表 (Employee) 中的所有行,即使右表 (mailingSubscriptions) 中沒有符合的行。以下查詢結合了左聯接來實現所需的結果:
SELECT c.name, count(m.mailid) FROM Employee c LEFT JOIN mailingSubscriptions m ON c.Name = m.EmployeeName GROUP BY c.name;
此修改後的查詢可確保所有員工都包含在結果中,對於mailingSubscriptions 中沒有匹配訂閱的員工,COUNT 聚合將返回0桌子。外連接消除了內連接的限制,內連接只顯示兩個表中具有匹配記錄的行。
透過使用左連接執行修改後的查詢,表將正確顯示所有員工的訂閱計數,包括那些無需訂閱。考慮到 mailingSubscriptions 表中訂閱和未訂閱的員工,這提供了完整且準確的數據表示。
以上是如何在 SQL 查詢中顯示沒有訂閱的員工的零計數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!