MySQL获取每个类别中每个用户的分数

时间:2015-02-01 08:25:20

标签: php mysql

基本上我有以下表格:

users (id)

question_categories(id)

questions(id, category)

answers(id, user, question, score)

我的问题是获取每个类别中每个用户的总分,以便根据每个类别中的分数对其进行过滤。

我希望结果表如(user,score_cat_1,score_cat_2,...)。我尝试通过从PHP构建表来添加每个类别得分列来尝试此选项,但是我必须在要添加的每个类别列上运行一个连接子查询。像

这样的东西
SELECT u.id, SUM(cat1.score) AS score_cat_1, ...
FROM users u
LEFT JOIN (
     SELECT score, category, user
     FROM answers a
     JOIN questions q ON a.question=q.id AND q.category=1
) AS cat1 ON u.id=cat1.user
...

所以我担心该表的大小和类别数量会导致性能问题。有更好的方法吗?

由于

0 个答案:

没有答案