在MySQL中如何计算来自用户的消息?

时间:2012-01-28 16:08:12

标签: php mysql count

我有以下表格。

消息

message_id
parent_id
forum_id
user_id

用户

user_id
username
pass

如何查询用户,并用他们的用户名显示他们的消息计数?

我的查询:

select count(subject), user_id from messages group by user_id;

问题是它只显示user_id和消息数,但没有用户名。如何让它显示用户名?

4 个答案:

答案 0 :(得分:4)

您需要将users表加入您的查询:

select count(*), username
from messages, users
where users.user_id = messages.user_id
group by users.user_id;

答案 1 :(得分:2)

 SELECT username, COUNT(*) FROM messages M
 JOIN users U USING (user_id)
 GROUP BY U.user_id

这样可以处理两个不同的user_id在users表中具有相同用户名的情况。此查询也是特定于MySQL的,可能无法与其他RDBMS一起使用。

答案 2 :(得分:0)

请在下方使用。我相信它会奏效。

SELECT messages.user_id, users.username, count(*)
FROM messages, users
WHERE messages.user_id = users.user_id

祝你好运!!!

答案 3 :(得分:0)

我认为这是您想要的查询。

$query = "SELECT u.username, COUNT(*) as total_count FROM messages m INNER JOIN users u ON m.user_id = u.user_id GROUP BY U.user_id"

此处total_count给出按用户ID分组的邮件总数,以避免加入相同的用户名。