它看起来像你正在做的是选择职位的计数每个用户,为所有用户。你并不需要查询包装成集从查询结果,你就应该能够通过
SELECT user_id, count(*) as totalPosts
from user_posts
group by user_id
做到这一点现在,如果你想要更多的用户信息,与它一起标记,然后你可以加入到用户表,如:
SELECT users.LastName, users.FirstName, etc, user_id, count(*) as totalPosts
from user_posts
join users
on user_posts.user_id = users.user_id
group by user_id
此外,由zerkms指出,如果这是你要总是为某种运行总总的东西,我会强烈建议您更新用户表中有一个“ totalPosts“列作为整数。然后,每当一个新条目添加到user_posts表,它只是有一个触发...
更新用户设置totalPosts = totalPosts +1其中USER_ID =用户ID使得后
然后,不必总是重新查询总数。就像S/O中的一些总数一样,用户还有其他的总点数,总awr等数据。对于跟随的标签,我相信他们也会计算每个标签有多少个问题。不要过度使用COUNT()将会成为将来的性能杀手的东西..
对于庞大的数据库,它可能值得预先计算帖子计数到一个单独的'users'表列并使用它而不是每次动态计算它 – zerkms
我希望每个用户的帖子数,为什么我这样做这样的查询... @zerkms –
我明白,你需要预先计算数据和商店,如果数据库很大,你需要经常检索 – zerkms