Mysql SQL计数值为零?

Mysql SQL计数值为零?,mysql,sql,Mysql,Sql,我正在尝试编写一个查询,该查询将显示归属于所有员工甚至值为0的员工的事务总数。到目前为止,我已经成功地做到了这一切,但不会向员工展示零金额。有人知道问题出在哪里吗 SELECT fss_Employee.empname, fss_Employee.empnin, COUNT(fss_Employee.empname) AS 'TOTAL TRANSACTIONS' FROM fss_Payment RIGHT JOIN fss_Employee ON fss_Payment.

我正在尝试编写一个查询,该查询将显示归属于所有员工甚至值为0的员工的事务总数。到目前为止,我已经成功地做到了这一切,但不会向员工展示零金额。有人知道问题出在哪里吗

SELECT
  fss_Employee.empname,
  fss_Employee.empnin,
  COUNT(fss_Employee.empname) AS 'TOTAL TRANSACTIONS'
FROM
  fss_Payment
RIGHT JOIN
  fss_Employee ON fss_Payment.empnin = fss_Employee.empnin
GROUP BY
  fss_Employee.empname
我将这样写:

SELECT e.empname, e.empnin,
       COUNT(p.empnin) AS TOTAL_TRANSACTIONS
FROM fss_Employee e LEFT JOIN
     fss_Payment p
     ON p.empnin = e.empnin
GROUP BY e.empname, e.empnin;

右键连接。。。怎么会?更容易理解
主表左连接可选数据
而不是
可选数据右连接主表
。使用
计数(fss\u Payment.empname)
而不是
计数(fss\u Employee.empname)
那次编辑是关于什么的?OP的编辑用垃圾的
sqlsql
删除了这个问题,我已经退回了,特别是考虑到一个答案也被接受了。@a_horse_,没有名字,他们不能,我不认为。他们有答案。鲍勃,别胡说八道了,你的停赛道路是对的。多个回滚将标记一个mod。这是可行的,但您知道我如何让它显示具有空值的员工,空值包括在员工表中,但不包括在付款表中吗?
COALESCE(COUNT(p.empnin),0),因为总交易将显示0而不是0NULL@Stavr00 . . . 
COUNT()
从不返回
0
,因此不需要
COALESCE()
。@Bob。这将返回所有员工。每个
empname
/
empnin
的唯一组合有一行。