Ich habe zwei Tabellen = subjects
und stats
.Zählwerte in anderen Tabelle
-- subjects --
------------------
| id | name |
------------------
| 1 | subjecta |
| 2 | subjectb |
| 3 | subjectc |
| 4 | subjectd |
| 5 | subjecte |
| 6 | subjectf |
| 7 | subjectg |
| 8 | subjecth |
| 9 | subjecte |
| ... | subjectf |
------------------
-- stats --
-----------------------------------
| user_id | subject_id | correct |
-----------------------------------
| 1 | 1 | false |
| 1 | 1 | false |
| 1 | 2 | false |
| 4 | 3 | false |
| 4 | 4 | false |
| 4 | 5 | false |
| 2 | 1 | true |
| 2 | 1 | true |
| 2 | 2 | false |
| 2 | 2 | true |
| 2 | 3 | false |
---------------------------------
Was ich brauche, zum Beispiel für ein give user_id
(wie 2), erhalten alle Fächer (von Fächern Tabelle) und für die, die er tun (von Statistiken) die Anzahl der richtig wahr/falsch wie dies:
--------------------------------------------------
| id | name | correct true | correct false|
----------------------------------|----------------
| 1 | subjecta | 2 | 0 |
| 2 | subjectb | 1 | 1 |
| 3 | subjectc | 0 | 1 |
| 4 | subjectd | 0 | 0 |
| 5 | subjecte | 0 | 0 |
| 6 | subjectf | 0 | 0 |
| 7 | subjectg | 0 | 0 |
| 8 | subjecth | 0 | 0 |
| 9 | subjecte | 0 | 0 |
| ... | subjectf | 0 | 0 |
----------------------------------|--------------|
Ich habe keine Ahnung, was ich tun soll.
Scheint, wie sie einen 'LEFT JOIN' wollen, weil sie alle Fächer für einen Benutzer auch zurückkehren wollen, wenn es keine Statistiken gibt. – ollie
vielen dank für die schnelle antwort. wie ollie sagt das return only row aus themen, in denen benutzer stats haben. Ich möchte alle Zeilen von Themen. Ich versuche SUM SELECT t2.id, t2.name, zu ändern (CASE WHEN t1.correct = 'true' THEN 1 ELSE 0 END) AS correct_true, SUM (CASE WHEN t1.correct false‘= 'THEN ELSE 1 0 END) AS correct_false von Subjekten t2 LEFT JOIN-Statistik t1 t2.id ON = t1.subject_id WHERE t1.user_id = 2 GROUP BY t2.id, t2.name' aber elbe – AlainIb
@ AlainIb Mache eine "LINKE VERBINDUNG" von "Themen" zu "Statistiken". Dies sollte sicherstellen, dass jedes Thema immer für jeden einzelnen Benutzer angezeigt wird, den Sie auswählen. Entschuldigung, aber sowohl Rextester als auch SQLFiddle haben gerade Probleme, daher konnte ich keine Tests durchführen. –