表格如下:
companies
companyid name description
stations
company_id province_id
provinces
provinceid country_id province
countries
countryid country
如何显示每个国家/地区的公司数量?
我试过了:
SELECT country, COUNT(companyid)
FROM companies
LEFT JOIN stations ON company_id=companyid
LEFT JOIN provinces ON stations.province_id=provinces.country_id
LEFT JOIN countries ON provinces.country_id=countryid
GROUP BY country
但我得到的是国家名称加上该国家/地区的电台数量,而不是每个国家/地区的公司总数。
答案 0 :(得分:0)
SELECT country, COUNT(distinct companyid)
FROM stations
JOIN provinces ON stations.province_id=provinces.country_id
JOIN countries ON provinces.country_id=countryid
GROUP BY country
1.你不需要使用左连接,因为连接中必须没有id miss
2.如果公司可以在一个省或一个国家/地区设置多个站点,您应该使用distinct
关键字在同一组中仅告知sql计数重复项目一次
3.如果您不需要公司名称表中的信息,请不要加入