Sql 对于不使用';不存在于表中

Sql 对于不使用';不存在于表中,sql,Sql,我需要统计一个公司的所有考试,如果考试表中不存在该公司,则返回0 在我的公司表中,我有3家公司。我的问题是: SELECT c.name, ISNULL(COUNT(e.ID), 0) FROM Exam e INNER JOIN Company c ON c.ID = e.COMPANY_ID GROUP BY c.name 它返回2行,但我想显示第三个在检查表中没有任何记录的公司 我该怎么做?您需要右连接或更常见的左连接: select c.name, COUNT(e.COMPAN

我需要统计一个公司的所有考试,如果考试表中不存在该公司,则返回0

在我的公司表中,我有3家公司。我的问题是:

SELECT c.name, ISNULL(COUNT(e.ID), 0)
FROM Exam e
INNER JOIN Company c ON c.ID = e.COMPANY_ID
GROUP BY c.name
它返回2行,但我想显示第三个在检查表中没有任何记录的公司


我该怎么做?

您需要右连接或更常见的左连接:

select
  c.name,
  COUNT(e.COMPANY_ID)
from
  Company c left join Exam e
  ON c.ID = e.COMPANY_ID
group by
  c.name

左联接将返回左表
公司
中的所有记录,并且仅返回
检查
表中具有匹配项的记录。Count将计算所有非空值。

使用左连接而不是内连接您使用的是MySQL还是MS SQL Server?(不要标记未涉及的产品。)@jarlh MS SQL Server。对不起。