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

时间:2010-11-02 04:59:15

标签: sql

好的,我正在尝试查看每个供应商提供的产品数量(产品和供应商是单独的表格)。我希望结果显示公司名称和公司可用的产品数量。我不确定如何设置它。

到目前为止,我有:

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

我不确定如何使ProductName计数特定于每个公司。我会永远感激你能提供给我的任何帮助。

1 个答案:

答案 0 :(得分:17)

您缺少的是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然后你就不会看到那些没有提供产品的公司。