1

我正在运行查询以查找已从我们的组织获得服务的用户,但我不希望他们的用户 ID 重复。例如,我可能在系统中有 5 次用户 id 1,但我只希望他们的 id 计为 1 次。这是我的查询:

mysql_query("SELECT COUNT(*) AS 'total'
FROM services
LEFT JOIN users
ON (services.USR_id = users.USR_id)
LEFT JOIN service_type
ON (services.SRV_type = service_type.TYPE_id)
WHERE services.MGR_orgid = $mgrorgid GROUP BY services.USR_id");
4

2 回答 2

1

删除group by ...,并将 更改count(*)count(distinct usr_id)

于 2013-11-14T20:53:41.123 回答
0
SELECT COUNT(*) AS total FROM users u
WHERE EXISTS (
    SELECT * FROM services s
    WHERE s.USR_id = u.USR_id
    AND s.MGR_orgid = $mgrorgid
)

试试这个。我删除了包含 的部分service_type,因为您在原始查询中对该表完全没有执行任何操作。

于 2013-11-14T21:10:04.763 回答