hallo leute,
habe ein kleines problem mit einer Abfrage.
Erstmal was zum Hintergrund des Projekts: Es geht um die Auswertung von Umfragen. Ich kann leider nichts an dem Datenbankdesign ändern sonst wäre es wohl auch nicht so kompliziert.
Folgende Tabellen sind Vorhanden:
run_answerclick
ID|RUN|ANSWER|QUESTION|SELECTED|...
1|1|12|10|Y|...
2|1|12|10|N|...
3|1|13|10|Y|...
4|1|22|11|Y|...
5|1|23|11|Y|...
6|1|15|10|Y|...
interpretieren kann man diese Tabelle so
RUN 1 / QUESTION 11:
Antwort 12 Slected
Antwort 12 Deselected
Antwort 13 Selected
Antwort 15 Selected
RUN 1 / QUESTION 10:
Antwort 22 Slected
Antwort 23 Slected
answers
ID|QUESTION|TEXT|...
12|10|Antwort 1|...
13|10|Antwort 2|...
14|10|Antwort 3|...
15|10|Antwort 4|...
22|11|Antwort 1|...
23|11|Antwort 2|...
24|11|Antwort 3|...
25|11|Antwort 4|...
Als Ergebnis möchte ich jetzt gerne wissen welche Antworten für eine Bestimme Frage bei Einem Bestimmtem Run zum Ende angeklickt sind und welche nicht.
Ergebnis
ANSWER|QUESTION|SELECTED|...
12|10|N|...
13|10|Y|...
14|10|N|...
15|10|Y|...
22|11|Y|...
23|11|Y|...
24|11|N|...
25|11|N|...
Mein Problem dabei ist das ich jeweils nur den "letzten stand" für eine antwort haben möchte.
außerdem möchte ich auch das nicht angeklickte antworten (14,24,25) mit in die Tabelle aufgenommen werden und mit einem "N" bei SELECTED versehen werden. Diese Abfrage Dauert bei mir über 2 sec. liegt wohl an den ganzen Subqueries. Habt ihr da einen Tipp wie ich sie effizienter gestalten kann?
Mein Ansatz:
Schöne Grüße
Splitiii
habe ein kleines problem mit einer Abfrage.
Erstmal was zum Hintergrund des Projekts: Es geht um die Auswertung von Umfragen. Ich kann leider nichts an dem Datenbankdesign ändern sonst wäre es wohl auch nicht so kompliziert.
Folgende Tabellen sind Vorhanden:
run_answerclick
1|1|12|10|Y|...
2|1|12|10|N|...
3|1|13|10|Y|...
4|1|22|11|Y|...
5|1|23|11|Y|...
6|1|15|10|Y|...
interpretieren kann man diese Tabelle so
RUN 1 / QUESTION 11:
Antwort 12 Slected
Antwort 12 Deselected
Antwort 13 Selected
Antwort 15 Selected
RUN 1 / QUESTION 10:
Antwort 22 Slected
Antwort 23 Slected
answers
12|10|Antwort 1|...
13|10|Antwort 2|...
14|10|Antwort 3|...
15|10|Antwort 4|...
22|11|Antwort 1|...
23|11|Antwort 2|...
24|11|Antwort 3|...
25|11|Antwort 4|...
Als Ergebnis möchte ich jetzt gerne wissen welche Antworten für eine Bestimme Frage bei Einem Bestimmtem Run zum Ende angeklickt sind und welche nicht.
Ergebnis
12|10|N|...
13|10|Y|...
14|10|N|...
15|10|Y|...
22|11|Y|...
23|11|Y|...
24|11|N|...
25|11|N|...
Mein Problem dabei ist das ich jeweils nur den "letzten stand" für eine antwort haben möchte.
außerdem möchte ich auch das nicht angeklickte antworten (14,24,25) mit in die Tabelle aufgenommen werden und mit einem "N" bei SELECTED versehen werden. Diese Abfrage Dauert bei mir über 2 sec. liegt wohl an den ganzen Subqueries. Habt ihr da einen Tipp wie ich sie effizienter gestalten kann?
Mein Ansatz:
Code:
SELECT ID, question,
(
SELECT selected FROM mlj_run_answerclick WHERE ID IN
(
SELECT MAX(ID) as ID FROM `run_answerclick` as r_a WHERE r_a.run = 1 and r_a.answer = t_a.ID GROUP BY run,answer
)
) as SELECTED
FROM `answer` as t_a WHERE t_a.`question` in (10,11)
Schöne Grüße
Splitiii