Ich habe eine Abfrage, die Fragen aus einer Tabelle und Antworten aus einer anderen abruft.
SELECT
questions.question,
questions.answers,
(SELECT COUNT(answer) FROM answers WHERE question_id = 1 AND answer = 1
GROUP BY answer) as ans1,
(SELECT COUNT(answer) FROM answers WHERE question_id = 1 AND answer = 2
GROUP BY answer) as ans2
FROM questions
WHERE questions.id = 1
Obwohl dies funktioniert, gefällt mir die Idee nicht, für jede Antwort eine zusätzliche Unterabfrage hinzuzufügen ( questions.answers
ist eine durch Komma getrennte Zeichenfolge möglicher Antworten). Es ist machbar, aber ich bin sicher, dass es einen besseren Weg geben muss. Die Hauptsache ist, dass verschiedene Fragen eine unterschiedliche Anzahl von Antworten haben.
Gibt es einen besseren Weg, dies zu tun, oder ist dies ein akzeptabler Weg, Dinge zu tun? Ich könnte mir vorstellen, dass mehrere Unterauswahlen in einer Abfrage in Zukunft einen (kleinen) Leistungseinbruch zur Folge haben könnten (nicht, dass ich die Leistung noch testen würde).
Wenn es zutrifft, erwarte ich nicht mehr als 5 Antworten pro Frage.