小编典典

SQL-连接两个表并计数项目

sql

好的,我试图查看每个供应商提供了多少个产品(“产品”和“供应商”为单独的表格)。我希望将结果与公司名称和公司提供的产品数量一起显示。我不确定该如何设置。

到目前为止,我有:

SELECT CompanyName, Count(ProductName) FROM Suppliers 
left join Products on Suppliers.SupplierID = Products.SupplierID;

我不确定如何使每个公司的ProductName计数。如果您能为我提供任何帮助,我将不胜感激。


阅读 227

收藏
2021-04-07

共1个答案

小编典典

您所缺少的只是GROUP BY子句:

SELECT CompanyName, Count(ProductName)
  FROM Suppliers LEFT JOIN Products
    ON Suppliers.SupplierID = Products.SupplierID
 GROUP BY CompanyName;

使用LEFT {OUTER}
JOIN意味着如果某些供应商不提供任何产品,则该联接将为与Products表相对应的列返回一组NULL值。然后,COUNT(ProductName)仅计算非空值的数量,从而为不提供产品的公司提供答案0。通常,您会使用常规的INNER
JOIN,然后看不到没有提供产品的公司。

2021-04-07