我正在使用 PHP , MySQL 以下
我有两个表
- 用户
- users_messages
“users”表存储所有用户的记录。
身份证名称密码 1 XYZ XYZ
[这里的id其实就是user_id]
“messages”表包含用户发布的消息
id user_id 消息 1 1 XYZ
“users”表包含数千条记录(>5000)
“users_messages”包含大约 100 条记录(将不断变化)
我正在尝试获取所有用户的消息数量并将它们显示在表格中。目前我正在尝试对它们进行分页,因此一页加载时我只需要 20 个用户。
我的查询如下
SELECT u.username as username,u.id as id, COUNT( f.user_id ) AS no_of_messages
FROM users AS u
LEFT JOIN users_messages AS f ON f.user_id = u.id
GROUP BY u.id LIMIT 20
这行得通,但需要很长时间......可能是它扫描完整的表只是为了得到只有 20 个用户的消息。
表“users”的 id 列不是从 1 开始的,开始是随机的,而是从下一条记录开始自动递增。