好的,我试图查看每个供应商提供了多少个产品(“产品”和“供应商”为单独的表格)。我希望将结果与公司名称和公司提供的产品数量一起显示。我不确定该如何设置。
到目前为止,我有:
SELECT CompanyName, Count(ProductName) FROM Suppliers left join Products on Suppliers.SupplierID = Products.SupplierID;
我不确定如何使每个公司的ProductName计数。如果您能为我提供任何帮助,我将不胜感激。
您所缺少的只是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,然后看不到没有提供产品的公司。