首页 >数据库 >mysql教程 >如何在 SQL 查询中显示没有订阅的员工的零计数?

如何在 SQL 查询中显示没有订阅的员工的零计数?

Barbara Streisand
Barbara Streisand原创
2024-11-29 20:49:11661浏览

How to Display Zero Counts for Employees Without Subscriptions in SQL Queries?

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn