基本上我有以下表格:
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
...
所以我担心该表的大小和类别数量会导致性能问题。有更好的方法吗?
由于