【发布时间】:2020-09-07 06:38:58
【问题描述】:
我找不到问题出在哪里,我的 COUNT() 为 contracts_count 和 records_count 值返回相同的数字。当只使用一个计数时,一切正常。本次查询原理:访问company表,得到它的id和name,company和group与contract表中的外键相关,record 具有与 group 表相关的外键。所以我加入有合同的公司以获得每个公司的合同数量,并加入有合同的组,记录组以获得每个公司的记录数。
SELECT
`company`.`id`,
`company`.`name`,
COUNT(`contract`.`contract_id`) AS contracts_count,
COUNT(`record`.`record_id`) AS records_count
FROM `company`
LEFT JOIN `contract`
ON `company`.`id`=`contract`.`fk_companystudijos_id`
LEFT JOIN `group`
ON `contract`.`fk_groupID`=`group`.`id`
LEFT JOIN `record`
ON `group`.`id`=`record`.`fk_groupID`
GROUP BY `company`.`id`
ORDER BY contracts_count DESC
【问题讨论】: