1

組織からサービスを受けたユーザーを検索するクエリを実行していますが、ユーザー ID が重複することは望ましくありません。たとえば、システム内にユーザー ID 1 が 5 回あるとしますが、その 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

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 に答える