Jeg bruger PHP og en Mysql-database. Jeg har lavet følgende query, hvor jeg ikke får 0-værdier på min count med:
SELECT afstemning_svar.svar, count( afstemning_stemmer.id ) AS stemmer FROM afstemning_stemmer INNER JOIN afstemning_svar ON afstemning_svar.id = afstemning_stemmer.svar_id WHERE afstemning_stemmer.sporgsmaal_id = '2' GROUP BY afstemning_stemmer.svar_id
Dvs. der findes en post i afstemning_svar, hvor der ikke er en tilsvarende i afstemning_stemmer.
Byt rundt på tabellerne og bibehold LEFT JOIN eller behold tabellerne og erstat LEFT JOIN med RIGHT JOIN. Jeg gik i første omgang ud fra at det var tabellen afstemning_stemmer, der var den primære tabel. Normalt opfører man dem i prioriteret rækkefølge.
Da WHERE sætningen refererer til den sekundære tabel i en OUTER JOIN, er du nødt til også at teste på NULL. F.eks.
SELECT afstemning_svar.svar_id, count( afstemning_stemmer.id ) AS stemmer FROM afstemning_stemmer RIGHT JOIN afstemning_svar ON afstemning_svar.id = afstemning_stemmer.svar_id WHERE afstemning_stemmer.sporgsmaal_id = '2' or afstemning_stemmer.sporgsmaal_id IS NULL GROUP BY afstemning_stemmer.svar_id
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.