Avatar billede mkjaer Nybegynder
22. marts 2006 - 16:00 Der er 3 kommentarer

Få nulværdier med i resultatet

Hej,

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.

Det er sikkert simpelt.....men hjælp!
Avatar billede kjulius Novice
22. marts 2006 - 19:43 #1
Brug LEFT JOIN i stedet for INNER JOIN
Avatar billede mkjaer Nybegynder
22. marts 2006 - 22:40 #2
Har prøvet - samme resultat = hvor count(afstemnin_stemmer.id) = 0 kommer ikke med.
Avatar billede kjulius Novice
23. marts 2006 - 01:12 #3
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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester