$sSql = "SELECT COUNT(DISTINCT `tsu`.`id`) AS `count`
FROM `" . $this->_sPrefix . "users` AS `tsu`
INNER JOIN `" . $this->_sPrefix . "entries` AS `tse`
ON `tsu`.`id`=`tse`.`subscriber_id`
AND `tse`.`subscriber_type`='" . BX_DOL_SBS_TYPE_VISITOR . "'
WHERE 1
GROUP BY `tsu`.`id`
LIMIT 1";
它不会对条目进行计数,而只返回1.如果我删除了组BY子句,那么它就可以工作。如何修复GROUP BY以使其更好地工作?
答案 0 :(得分:4)
WHERE 1
什么都不做,所以可以删除它。
GROUP BY
也可以删除,因为您没有按任何分组,COUNT DISTINCT
在整个桌子上,不是吗?
正如Orbling指出的那样,LIMIT 1
也可以删除,因为COUNT DISTINCT
按定义只返回一个值。
它能做你想做的吗?
答案 1 :(得分:1)
您按tsu
分组。id
。
根据定义,每个人tsu
。id
组在群组中只有1个不同的tsu
。id
您希望它返回什么内容?
答案 2 :(得分:0)
SELECT u.id, COUNT(e.id)
FROM users AS u
INNER JOIN entries AS e ON e.subscriber_id = u.id
WHERE e.subscriber_type = 'BX_DOL_SBS_TYPE_VISITOR'
GROUP BY u.id