我正在使用内部Join获取具有某些条件的用户列表。它的工作正常,但我也想在一个单一的MySQL查询中计算总数。这是查询:

select  username, hostname, sessiontable.status
from usertable JOIN sessiontable
ON usertable.users_id = sessiontable.session_id
WHERE sessiontable.updated_at >= NOW() - INTERVAL 10 MINUTE


我也尝试使用COUNT(*)作为上述查询的总和,但它只给出计数和空字段。如何获得最近10分钟内看到的所有用户的计数。

谢谢

最佳答案

使用group by子句并计算id

select  username, hostname, sessiontable.status, count(usertable.users_id) as total
from usertable JOIN sessiontable
ON usertable.users_id = sessiontable.session_id
WHERE sessiontable.updated_at >= NOW() - INTERVAL 10 MINUTE
group by usertable.users_id

08-19 01:57