Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何选择记录数,然后通过外键将其分组?_Sql_Select_Count - Fatal编程技术网

Sql 如何选择记录数,然后通过外键将其分组?

Sql 如何选择记录数,然后通过外键将其分组?,sql,select,count,Sql,Select,Count,我有两张桌子:产品和供应商。SupplierID是products表中的外键。我需要做一个表,其中包含国家,供应商ID,公司名称所有从供应商表,然后我需要有每个供应商的产品数量。我尝试了以下查询: SELECT DISTINCT s.country, s.supplierid, s.companyname, (SELECT Count(DISTINCT productid) AS

我有两张桌子:产品和供应商。SupplierID是products表中的外键。我需要做一个表,其中包含国家,供应商ID,公司名称所有从供应商表,然后我需要有每个供应商的产品数量。我尝试了以下查询:

SELECT DISTINCT s.country, 
                s.supplierid, 
                s.companyname, 
                (SELECT Count(DISTINCT productid) AS 
                        "Number of Products Supplied" 
                 FROM   products 
                        INNER JOIN suppliers 
                                ON p.supplierid = s.supplierid) AS 
                "Number of products Supplied" 
FROM   suppliers s, 
       products p 
WHERE  ( s.country = 'usa' 
          OR s.country = 'uk' ) 
       AND s.supplierid = p.supplierid 
但我得到的是产品总数,而不是每个供应商提供的产品数量。有什么想法吗

SELECT s.country, s.supplierid, s.companycame, Count(*) AS Number_of_Products_Supplied
FROM suppliers s
 JOIN products p ON s.supplierid=p.supplierid
WHERE s.country IN ('usa', 'uk')
GROUP BY s.country, s.supplierid, s.companycame

如果我理解你的问题,我想这应该是你想要的。

请停止混合隐式和显式
JOIN
语法。