解决 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中文网其他相关文章!