mysql 一对多 如何查数据

程序使用的是thinkphp
目前遇到的问题是:
有一个用户表有uid,有一个文章表(文章id,用户uid,热度hot),一个用户分类表(用户等级level 1-9),
一个用户可以发很多的文章,文章有热度hot字段分为1-9个等级
现在想查询用户分类为用户等级为3的所有用户的所有文章,然后计算出来文章hot1有多少人,大于等级hot1的多少人。hot2有多少人,大于等于hot2的多少人,
如果要先查询出所有用户,可能有1W左右,然后再查询1W次 获得所有文章,并通过hot分类,但是这样的消耗非常大,可能最终需要十几秒的时间才能出来,这只是一个小功能,很明显不能这样做,那么有什么办法可以更高效吗

先把所有数据查出来,,然后后台进行分类,,不要在数据库中这样查