所以这是我的数据库结构的图像: MySQL查询 - 让每个用户和类别最新得分
基本上它是一个测验应用程序,其中的每一个问题和测验有一个类别(因为还有竞猜类混合 - 其中包括几个类别的问题)。每当用户玩一个新的测验时,测验表中的新条目将被制作 - 记录测验的用户,类别,分数以及开始和结束时间。
我需要一个查询,其中我显示每个用户和类别的最新分数。 (很高兴有:也是每个用户和类别的平均分数)
最终应该看起来像。很显然,我已经有了一个查询,但它并不是很好,因为Max Mustermann只显示了一个结果,但实际上有4个类别的结果。我不太清楚为什么所有其他用户都会显示他们所玩的结果,也许这是因为他们每个类别只玩一个测验。但Max Mustermann仅播放了一次“混合”类别,并未显示。
这是我目前使用的代码:
$query_scores_per_cat_per_user = "
SELECT category, t1.scores AS scores
FROM categories
left JOIN quizzes as t1 ON categories.id=t1.FK_categories
left JOIN quizzes AS t2
ON t1.FK_users = t2.FK_users
AND t1.end_timestamp < t2.end_timestamp
WHERE t2.FK_users IS NULL
and t1.fk_categories = ".$category_id." and t1.FK_users=".$all_users_id."
order by category ASC"
能不能帮我找到错误了吗?我真的迷失在这里。 谢谢!
见http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very -simple-sql-query – Strawberry