Mysql 输出特定类别的总数

Mysql 输出特定类别的总数,mysql,sql,join,Mysql,Sql,Join,以下是我正在使用的数据库: 计算每个学者的论文总数。输出 应包括每个学术论文的数量和论文总数。特别地, 没有任何论文的学术论文数量应为零(0) 输出。必须使用联接运算符。 我不确定如何输出每个学术论文的总数 我试图回答这个问题: SELECT acnum, panum FROM author NATURAL JOIN paper; 这会输出窗格和acnum,但不会指定每个acnum的总数。是否有关键字输出每个acnum的总数 谢谢。做一个左外连接。然后可以计算匹配的作者行数。如果没有匹配的作者

以下是我正在使用的数据库:

计算每个学者的论文总数。输出 应包括每个学术论文的数量和论文总数。特别地, 没有任何论文的学术论文数量应为零(0) 输出。必须使用联接运算符。

我不确定如何输出每个学术论文的总数

我试图回答这个问题:

SELECT acnum, panum
FROM author NATURAL JOIN paper;
这会输出窗格和acnum,但不会指定每个acnum的总数。是否有关键字输出每个acnum的总数


谢谢。

做一个左外连接。然后可以计算匹配的作者行数。如果没有匹配的作者行,则由于左连接,存在空值。对于空字段,当计算特定字段时,它将计为无行(因此为零)


使用
groupby
LEFT JOIN
LEFT JOIN加
groupby
coalesce(count(*),0)
获得零。我尝试了以下操作:
从作者的LEFT JOIN paper GROUP BY acnum中选择acnum、panum、coalesce(count(*),0我做错了什么?当然你需要添加一个连接条件。你必须加入
academic
author
,而不是
论文
为什么
concat
而不是简单的
col1、col2
?你可以这样做(即,按单个字段返回并分组,或者将它们全部返回并分组)。取决于是否要直接输出结果。
SELECT CONCAT_WS(' ', academic.title, academic.initials, academic.faname), COUNT(author.panum)
FROM academic
LEFT OUTER JOIN author
ON academic.acnum = author.acnum
GROUP BY CONCAT_WS(' ', academic.title, academic.initials, academic.faname)