好的,我正在尝试查看每个供应商提供的产品数量(产品和供应商是单独的表格)。我希望结果显示公司名称和公司可用的产品数量。我不确定如何设置它。
到目前为止,我有:
SELECT CompanyName, Count(ProductName) FROM Suppliers
left join Products on Suppliers.SupplierID = Products.SupplierID;
我不确定如何使ProductName计数特定于每个公司。我会永远感激你能提供给我的任何帮助。
答案 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然后你就不会看到那些没有提供产品的公司。