【发布时间】:2017-05-14 17:04:18
【问题描述】:
所以这是我的数据库结构的图像:
基本上它是一个测验应用程序,其中每个问题和测验都有一个类别(因为还有混合的测验类别 - 包括来自多个类别的问题)。每次用户进行新测验时,都会在测验表中创建一个新条目——记录用户、类别、分数以及测验的开始和结束时间。
我需要一个查询来显示每个用户和类别的最新分数。 (很高兴:也是每个用户和类别的平均分数)
最后应该看起来像。显然我已经有一个查询,但它并不能很好地工作,因为 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"
你能帮我找出错误吗?我真的迷路了。 谢谢!
【问题讨论】: