我有以下表格。
表消息
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和消息数,但没有用户名。如何让它显示用户名?
答案 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分组的邮件总数,以避免加入相同的用户名。