GROUP BY无法正常工作

时间:2010-12-08 14:18:10

标签: php sql mysql group-by

$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以使其更好地工作?

3 个答案:

答案 0 :(得分:4)

WHERE 1什么都不做,所以可以删除它。

GROUP BY也可以删除,因为您没有按任何分组,COUNT DISTINCT在整个桌子上,不是吗?

正如Orbling指出的那样,LIMIT 1也可以删除,因为COUNT DISTINCT按定义只返回一个值。

它能做你想做的吗?

答案 1 :(得分:1)

您按tsu分组。id

根据定义,每个人tsuid组在群组中只有1个不同的tsuid您希望它返回什么内容?

答案 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