php - 如何查找记录总数?

标签 php mysql

在这种情况下如何找到总记录:

我有一个表“用户”、一个表“消息”和一个表“组”。用户可以发送消息,该消息将存储在“messages”表中。每个用户都可以是一个组的成员。现在我想在组详细信息页面上显示组中所有用户发送的消息总数。如何获取群组中的所有用户并统计他们的消息?最好、最快的方法是什么?

我无法使用连接,所以这不起作用。我不知道如何解决它。

SELECT COUNT(Message_id) AS total_messages, d.Userid FROM messages AS d LEFT JOIN users AS s ON (s.Groupid=$groupid) WHERE s.Groupid=$groupid

谢谢!

如果您需要表结构:

** users **
Userid
Groupid

** groups **
Groupid
Some_details

** messages **
Messageid
Userid
Subject
Content

最佳答案

如果您正在查找消息总数而不需要了解每个用户,请尝试

SELECT COUNT(messages.Messageid) as total_messages
FROM messages
    INNER JOIN users ON messages.Userid = users.Userid
WHERE users.Groupid = $groupid

如果您要基于 messages.Userid 字段进行大量查询,请确保您也对该字段建立索引。

需要对每个用户尝试进行计数

SELECT 
    COUNT(messages.Messageid) as num_messages,
    messages.Userid
FROM messages
    INNER JOIN users ON messages.Userid = users.Userid
WHERE users.Groupid = $groupid
GROUP BY users.Userid

关于php - 如何查找记录总数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10797493/

相关文章:

php - MySQL 查询随机滞后

php - 如何在 php/mysql 中使用数组变量进行 mysql 查询

php - PDO 准备失败

MySQL 年份类型

php - SQL - 查询以从搜索中返回最相关的结果

PHP Curl Posting @Sign 返回 False

WHERE 子句中的 PHP 变量,如何?

php - 如何一步上传图片和文字?

mysql - 相当于关系代数中的 GroupBy 和having 子句

mysql - 内连接、更新、选择重复条目