2016-06-06 13 views
-5

Ich habe diese verdammte Abfrage, die ich versuche herauszufinden, aber es treibt mich total verrückt, weil ich keinen Weg finden kann, um es zu bauen. Dies ist die Tabellenstruktur, auf der ich Daten abfragen werde.Ich habe diese Abfrage, die mich verrückt macht

---------------------------------------------------------------------------- 
| id | id_user | id_game| id_question | user_answer | answer_time | points | 
---------------------------------------------------------------------------- 

der Tisch game_user_answers genannt und ich soll den Gewinner eines Quiz-Spiel finden. Ich habe eine andere Tabelle namens games, in der ich ID-Spiel und die game_start_time speichern. Wenn die Antwort 0 Punkte hat, hat der Benutzer nicht richtig geantwortet.

Im Grunde, was ich tun möchte, ist die Id_user, die mehr Punkte kombiniert hat alle Antworten, die er gegeben hat und seine letzte Antwort Zeit ist am nächsten zum Spiel_start_time.the Spiel-ID und die Spiel_start_time werden als Parameter an die Funktion übergeben werden in dem die Abfrage ausgeführt wird, also mach dir keine Sorgen um sie.

Bitte helfen Sie mir.

+2

Aktualisieren Sie Ihren Code zu zeigen, was haben Sie versucht? – Jonnny

+0

@Jonnny danke für die schnelle Antwort, aber ich habe nichts versucht, da ich nicht wusste, von wo aus zu starten :( –

+0

Wahrscheinlich sollte zumindest einen Versuch machen, ich bin ziemlich zuversichtlich, dass wird ein wichtiger Grund für den Down sein Aber ich habe deine Frage nicht – Jonnny

Antwort

0

Dies ist nicht die Antwort, sondern der Ausgangspunkt für Sie.

Hier ist sqlfiddle: http://sqlfiddle.com/#!9/197dd9/1

Sie sollten mehr Daten in diese Geige hinzu. Danach verwenden Sie meine Abfrage, um einige Ergebnisse zu sehen und mit dieser Abfrage zu spielen, bis Sie zum nächsten Ergebnis dessen kommen, was Sie erwarten. Und wenn Sie einmal an dem Punkt angelangt sind, an dem Sie Ihr Ziel nicht erreichen können, kommen Sie mit Ihrer Geige zurück und fragen Sie die vorbereitete und fragen Sie die Gemeinschaft erneut nach der Hilfe.

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' 
+0

danke dir so viel ... Ich werde daran arbeiten :) –

Verwandte Themen