aschj Skrevet 18. november 2004 Del Skrevet 18. november 2004 (endret) Beklager dårlig trådtittel. Jeg skal liste opp antall treff i en database over kommentarer slik: select e.id, e.time, e.header, count(e_comments.id) from e, e_comments where e_comments.eid = e.id group by e.id order by e.time desc limit 10 Problemet med dette er at den ikke viser rader som ikke har noen kommentarer knyttet til seg. Hvordan kan jeg få MySQL til å returnere 0 i count() i stedet for å hoppe over hele rada? Jeg legger til at problemet ligger i where-uttrykket, men det må være der, ellers returnerer count() antall kommentarer totalt i tabellen. Endret 18. november 2004 av aschj Lenke til kommentar
Mefix Skrevet 18. november 2004 Del Skrevet 18. november 2004 Er ikke sikker på om jeg forstår spørsmålet helt, men dersom du ønsker å liste ut også de radene som ikke har match i e_comments tabellen din, så må du bruke en ytre-join. Lenke til kommentar
Mefix Skrevet 18. november 2004 Del Skrevet 18. november 2004 Noe som: select e.id, e.time, e.header, count(e_comments.id) from e, e_comments where LEFT OUTER JOIN e_comments ON e_comments.eid = e.id group by e.id order by e.time desc limit 10 Eller motsatt, er ikke sikker, jobber bare med ORACLE Lenke til kommentar
aschj Skrevet 18. november 2004 Forfatter Del Skrevet 18. november 2004 Takk, det fungerte med noen små modifikasjoner. Dette har jeg lurt på lenge Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå