所以這是我的數據庫結構的圖像: 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