使用OUTER JOINS 處理MySQL 中的空計數
使用關聯式資料庫時,跨多個查詢時顯示零值可能會很困難表。例如,考慮問題中描述的場景,其中我們有兩個表:Employee 和 mailingSubscriptions。 Employee 表包含有關員工的基本信息,而 mailingSubscriptions 表則追蹤他們的電子郵件訂閱狀態。
要計算每位員工的訂閱數量,我們可以使用以下查詢:
SELECT COUNT(c.Name) FROM Employee INNER JOIN mailingSubscriptions as m ON c.Name = m.EmployeeName;
但是,此查詢將只傳回在 mailingSubscriptions 表中至少有一項的員工的計數。如果員工尚未訂閱任何電子郵件,則結果中將忽略其計數。
要為沒有訂閱的員工包含零值,我們需要使用外部聯結。外連接允許我們組合兩個表中的行,即使它們沒有匹配的值。在本例中,我們將使用 左外連接,它將保留 Employee 表中的所有行,無論它們在 mailingSubscriptions 表中是否有對應的行。
以下查詢使用用於計算每個員工的訂閱計數的左外連接,包括那些沒有訂閱的員工:
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 子句確保我們單獨計算每位員工的訂閱量。查詢的結果將是員工姓名及其相應訂閱計數的列表,對於尚未訂閱任何電子郵件的員工,顯示零值。
以上是如何使用外接統計MySQL中員工的包含零值的訂閱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!