我有这个该死的查询,我想弄清楚,但它让我完全疯狂,因为我找不到开始构建它的方法。 这是我将查询数据的表结构。
----------------------------------------------------------------------------
| id | id_user | id_game| id_question | user_answer | answer_time | points |
----------------------------------------------------------------------------
该表名为game_user_answers
,我应该找到测验游戏的赢家。
我有另一个名为games
的表,其中我存储了id游戏和game_start_time
。
如果答案的0分比用户没有正确回答的话。
基本上我想做的是从给出的所有答案中得到更多积分的id_user,并且他的最后答案时间最接近game_start_time。游戏ID和game_start_time将作为参数传递给函数in查询将被执行,所以不要担心它们。
请帮帮我。
答案 0 :(得分:0)
这不是答案,而是你的起点。
这是sqlfiddle:http://sqlfiddle.com/#!9/197dd9/1
您应该向该小提琴中添加更多数据。 之后使用我的查询来查看一些结果并使用该查询,直到达到您期望得到的最接近的结果。一旦你达到了无法实现目标的程度,请准备好你的小提琴和查询,并再次向社区寻求帮助。
SELECT
g.*,
gua.*
FROM games g
LEFT JOIN game_user_answers gua
ON g.id = gua.id_game
AND gua.answer_time>g.game_start_time
AND points>0
WHERE g.id = 1
AND g.game_start_time = '2016-01-01 00:00:00'