Php MySQL查询-获取每个用户和类别的最新分数
这是我的数据库结构的图像: 基本上,它是一个测验应用程序,每个问题和测验都有一个类别,因为测验类别也是混合的,其中包括来自几个类别的问题。每次用户进行新的测验时,测验表中都会有一个新条目——记录用户、类别、分数以及测验的开始和结束时间 我需要一个查询,其中显示每个用户和类别的最新分数。 很好:还有每个用户和类别的平均分数 最终看起来应该是这样的。很明显,我已经有了一个查询,但它并没有很好地工作,因为Max Mustermann只显示了一个结果,但实际上有4个类别的结果。我真的不知道为什么所有其他用户都会显示他们玩过的结果,可能是因为他们每个类别只玩过一次测验。但是马克斯·穆斯特曼只玩了一次混合类游戏,没有显示出来 这是我目前使用的代码:Php MySQL查询-获取每个用户和类别的最新分数,php,mysql,sql,Php,Mysql,Sql,这是我的数据库结构的图像: 基本上,它是一个测验应用程序,每个问题和测验都有一个类别,因为测验类别也是混合的,其中包括来自几个类别的问题。每次用户进行新的测验时,测验表中都会有一个新条目——记录用户、类别、分数以及测验的开始和结束时间 我需要一个查询,其中显示每个用户和类别的最新分数。 很好:还有每个用户和类别的平均分数 最终看起来应该是这样的。很明显,我已经有了一个查询,但它并没有很好地工作,因为Max Mustermann只显示了一个结果,但实际上有4个类别的结果。我真的不知道为什么所有其
$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"
你能帮我找出错误吗?我在这里真的迷路了。
谢谢大家!
SELECT t2.UserName, category, Sum(t1.scores) AS scores, AVG(t1.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."
Group by t2.UserName, Category,
order by t1.Scores desc, category
我没有尝试..您需要在第二次加入中包含该类别
请看,您是否知道是否也可以显示每个用户和类别的测验次数、平均分数以及最高分数?-我有一个查询,但它显示了奇怪的结果。您需要加入使用GROUP BY的子查询来获得这些结果。
$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.FK_categories = t2.FK_categories
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"