Ich habe ein Problem, meine Abfrage so zu bekommen, wie ich es möchte. Ich habe 2 Tabellen: Passagen und Fragen Tabellenmysql Abfrage, um aus verwandten Tabellen zweimal zu zählen
Die Fragen Tabelle hat einen Fremdschlüssel einer Passage. Die Fragentabelle enthält eine Spalte mit dem Status "Aktiv", "Inaktiv" oder "Überprüfung". Ich war in der Lage, die Anzahl der aktiven Fragen zu ermitteln, aber jetzt möchte ich auch die Anzahl der Fragen in die Bewertung aufnehmen, aber ich kann es nicht richtig finden. Das Folgende ist das, was ich bisher herausgefunden habe, aber die Spalte für die Frageeinsicht gibt mir die gleiche Nummer wie die Anzahl der Fragen.
Wie sollte ich meine Abfrage einrichten, um die Anzahl der Fragen in der Überprüfung auch zu bekommen?
EDIT:
Nach Herumspielen mit dem, was hier vorgeschlagen wurde, ist das, was ich
Lösung zu bekommen:
SELECT
p.id,
SUM(CASE WHEN q."status" = 'active' THEN 1 ELSE 0 END) AS numQuestions,
SUM(CASE WHEN q."status" = 'review' THEN 1 ELSE 0 END) AS questionsInReview,
ROUND(AVG(CASE WHEN q."status" = 'active' THEN q."level" ELSE Null END)) as questionLevel
FROM "Passages" AS p
LEFT JOIN "Questions" as q ON p.id = q."PassageId"
GROUP BY p.id
ORDER BY p.id ASC
Dies funktioniert für mich das Beste, da es die einfachste Lösung war. Bearbeitete die Frage, um die Lösung zu haben. Musste diese Abfrage ein wenig optimieren, damit es funktioniert – paulducsantos