Mysql 从左外部联接计算空值,这可能吗?
我有一个关于加入的问题,如果有人能帮忙的话 我有一个问题:Mysql 从左外部联接计算空值,这可能吗?,mysql,sql,join,Mysql,Sql,Join,我有一个关于加入的问题,如果有人能帮忙的话 我有一个问题: SELECT cl.*,c.*,s.*,o.*,p.*,r.* FROM COMPANY_LOCATION__K cl INNER JOIN COMPANY__K c on c.COMPANY_ID__K = cl.COMPANY_ID__K INNER JOIN SOCIAL_MEDIA__K s on cl.COMPANY_ID__K = s.COMPANY_ID__K INNER JOIN OPERATIONAL_HOURS__K
SELECT cl.*,c.*,s.*,o.*,p.*,r.*
FROM COMPANY_LOCATION__K cl
INNER JOIN COMPANY__K c on c.COMPANY_ID__K = cl.COMPANY_ID__K
INNER JOIN SOCIAL_MEDIA__K s on cl.COMPANY_ID__K = s.COMPANY_ID__K
INNER JOIN OPERATIONAL_HOURS__K o on cl.LOCATION_ID__K = o.LOCATION_ID__K
INNER JOIN PERMISSIONS__K p on cl.LOCATION_ID__K = p.LOCATION_ID__K
LEFT OUTER JOIN REVIEW__K r on cl.LOCATION_ID__K = r.LOCATION_ID__K
ORDER BY DISTANCE__K LIMIT 100;
这将列出一家公司的信息和许多其他统计数据
我遇到了麻烦,因为aCompany\u位置
可能不一定有与之关联的评论,所以当我将r.*
更改为COUNT(r.rating)
时,没有评论的行不会显示在我的结果集中。我希望计数返回为0
,因此我知道不存在评级。这可能吗
提前感谢我相信你需要一个
小组来完成你所需要的。如果你想了解每家公司的信息,我想应该是:
SELECT cl.*, c.*, s.*, o.*, p.*, count(r.rating)
FROM COMPANY_LOCATION__K cl
INNER JOIN COMPANY__K c on c.COMPANY_ID__K = cl.COMPANY_ID__K
INNER JOIN SOCIAL_MEDIA__K s on cl.COMPANY_ID__K = s.COMPANY_ID__K
INNER JOIN OPERATIONAL_HOURS__K o on cl.LOCATION_ID__K = o.LOCATION_ID__K
INNER JOIN PERMISSIONS__K p on cl.LOCATION_ID__K = p.LOCATION_ID__K
LEFT OUTER JOIN REVIEW__K r on cl.LOCATION_ID__K = r.LOCATION_ID__K
GROUP BY cl.LOCATION_ID
ORDER BY DISTANCE__K
LIMIT 100;
我已经试过了,但它仍然没有显示没有任何评级的行@Gordona根据原始问题,REVIEW\uu K
包含rating
字段。此查询中没有任何内容基于此表进行筛选。我假设company location表无法与另一个表匹配。尝试为所有联接插入左外部联接
。将它们全部更改为外部联接似乎也不起作用。然而,我确实弄明白了。。我必须在主键上使用GROUPBY@Gordon我使用了:groupby cl.LOCATION\u ID这是主键,因为一家公司可能有许多位置。当您将r.*更改为COUNT(r.rating)时,实际运行的查询是什么?