我有这个让我疯狂的查询

时间:2016-06-06 15:46:36

标签: mysql sql

我有这个该死的查询,我想弄清楚,但它让我完全疯狂,因为我找不到开始构建它的方法。 这是我将查询数据的表结构。

----------------------------------------------------------------------------   
| 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查询将被执行,所以不要担心它们。

请帮帮我。

1 个答案:

答案 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'