使用 mysql group by 显示计数为 0 的行

2024-04-16数据库问题
6

本文介绍了使用 mysql group by 显示计数为 0 的行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我在 MySql 中有两个表公司 : (cname,city)作品 : (ename,cname,salary)

I have two tables in MySql Company : (cname,city) works : (ename,cname,salary)

我想显示为每家公司工作的员工人数,即使这个数字为零.

I want to display number of employees working for every company, even if that number is zero.

例如对于

Company : 
Microsoft Bangalore
IBM       NY

works : 
emp1 Microsoft 10000
emp2 Microsoft 90000

输出应该是:

Microsoft 2
IBM 0

但以下查询和其他类似查询仅打印那些至少拥有一名员工的公司:

But the following query and other similar queries print only those companies which have at least one employee :

Select count(*) from works natural join company group by company.cname

如果我使用外连接,那么员工人数为零的公司仍然会显示排成一排,因此该选项也已退出.

If I use outer join, then the companies with zero employees will still show up in one row, so that option is out as well.

怎么做?

推荐答案

LEFT JOIN 的经典案例:

Classic case for a LEFT JOIN:

SELECT
  c.cname,
  COUNT(w.ename) wcount 
FROM
  company c
  LEFT JOIN works w ON c.cname = w.cname
GROUP BY
  c.cname

这篇关于使用 mysql group by 显示计数为 0 的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

Mysql目录里的ibtmp1文件过大造成磁盘占满的解决办法
ibtmp1是非压缩的innodb临时表的独立表空间,通过innodb_temp_data_file_path参数指定文件的路径,文件名和大小,默认配置为ibtmp1:12M:autoextend,也就是说在文件系统磁盘足够的情况下,这个文件大小是可以无限增长的。 为了避免ibtmp1文件无止境的暴涨导致...
2025-01-02 数据库问题
151

SQL 子句“GROUP BY 1"是什么意思?意思是?
What does SQL clause quot;GROUP BY 1quot; mean?(SQL 子句“GROUP BY 1是什么意思?意思是?)...
2024-04-16 数据库问题
62

MySQL groupwise MAX() 返回意外结果
MySQL groupwise MAX() returns unexpected results(MySQL groupwise MAX() 返回意外结果)...
2024-04-16 数据库问题
13

MySQL SELECT 按组最频繁
MySQL SELECT most frequent by group(MySQL SELECT 按组最频繁)...
2024-04-16 数据库问题
16

在 Group By 查询中包含缺失的月份
Include missing months in Group By query(在 Group By 查询中包含缺失的月份)...
2024-04-16 数据库问题
12

为什么 Mysql 的 Group By 和 Oracle 的 Group by 行为不同
Why Mysql#39;s Group By and Oracle#39;s Group by behaviours are different(为什么 Mysql 的 Group By 和 Oracle 的 Group by 行为不同)...
2024-04-16 数据库问题
13