mysql select top users问题

标签 mysql

我有 users 表,我有 posts 表,我想从 users 中选择拥有大量帖子的顶级用户 posts 表并按帖子数排序 我可以通过 array_count_values() 来实现,但我无法订购 现在我想如果我通过一个 mysql 查询来完成它并加入会更好

表结构

posts

编号 |作者编号

我试过了

SELECT COUNT(1) cnt, u.user_id 
FROM users u 
LEFT JOIN posts p
ON p.author_id=u.user_id
GROUP BY u.user_id
ORDER BY cnt DESC
LIMIT 20

它给了我这个 alt text http://img511.imageshack.us/img511/6707/31154352.gif 看箭头 这是什么 我在 user_id 5 下只有 2 个帖子 第一行是什么

最佳答案

您需要使用 GROUP BY u.user_id 按用户聚合帖子,获取帖子数量的 COUNT 值并按该数字按降序排列:

SELECT COUNT(1) cnt, u.user_id 
FROM users u 
LEFT JOIN posts p
ON p.author_id=u.user_id
GROUP BY u.user_id
ORDER BY cnt DESC
LIMIT 20

关于mysql select top users问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2462749/

相关文章:

mysql - 将 Phusion Passenger 从 3.0.11 更新到 4.0.10 会导致 ActiveRecord::StatementInvalid 在查询期间丢失与 MySQL 服务器的连接

PHP 不切换

mysql - 在什么情况下使用 MySQL 关键字 'one'?

php - 将sql查询转换为laravel5.2?

php - 在 PHP 中按天获取总销售额

mysql - 运行sql语句时出现问题

mysql - 在 Mac 上使用 mysql.sock.lock 启动 mysql 时遇到问题

mysql - 如何在这个sql表中找到所有员工访问过的位置?

php - Dynamica 数据库 - 数组 - 使用 PHP/MySql 将值从第 1 页传递到第 2 页

php - 如何从 MySQL 数据库中获取 Youtube url?