select reply_id,count(*) as antal from dintabel group by reply_id eller select reply_id,count(*) as antal from dintabel where reply_id='4' group by reply_id
jeg har siddet og rodet lidt med det og er kommet frem til følgende som faktisk virker :) vil så bare lige høre om det er den korrekte måde at gøre det på??
debate1 og debate2 er jo den samme table, så jeg ved ikke om det er korrekt lavet eller der findes en bedre måde at gøre det på?? :)
SELECT debate1.id, COUNT(debate2.reply_id) AS replies FROM $DB.$table debate1, $DB.$table debate2 WHERE debate1.reply_id=0 && debate1.id=debate2.reply_id GROUP BY debate1.id ORDER BY debate1.time DESC
Når du bruger GROUP BY, så grupperes resultatet (så du får een af hver), med mulighed for at summere, optælle osv. på andre felter...
Når du bruger: SELECT reply_id, COUNT(*) AS replies FROM $DB.$table GROUP BY reply_id
vil du således få: replyid | replies 0 | 2 1 | 1 2 | 2 4 | 2
som netop er indholdet af din tabel!
Hvis du vil have de tomme med, så må du enten lave en tabel med alle de muligheder du vil have (fx. 0-99) eller fylde dem på ved ekstern programmering, hvor du så løber dit resultat igennem række for række, og så skriver 0, for de rækker, som ikke har nogen værdi.
Du kan jo prøve at lave en tabel kaldet "tal" med en kolonne "id" og fyld alle tal fra 0 til 99 i den. Derefter kan du bruge:
SELECT tal.id, COUNT(*) AS replies FROM tal LEFT JOIN $DB.$table ON tal.id = $DB$.table.reply_id GROUP BY tal.id
SELECT debate.id, debate.subject, debate.time, COUNT(debate2.reply_id) AS replies, user.name FROM $DB.$table debate, $DB.user user LEFT JOIN $DB.$table debate2 ON debate.id=debate2.reply_id WHERE debate.user_id=user.id && debate.reply_id=0 GROUP BY debate.id ORDER BY debate.time DESC
Her er min query og den virker! :)
Man bliver nød til at sætte noget i COUNT() ellers får man ikke det rigtige resultat i replies
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.