18. august 2008 - 16:06Der er
4 kommentarer og 1 løsning
Hjælp til Sub query sætning med count funktion.
Hejsa.
Jeg har 2 tabeller.
1. tabel hedder "tbforums". Den indeholder 2 felter: ID og NAME. Dette er en oversigt over mine forums i min applikation.
2. tabellen hedder "tbforumthreads". Denne tabel indeholder en liste over de tråde der er oprettet i hvert forum. Denne tabel har et felt som hedder FORUM. Det er et int felt, og har samme værdi som ID feltet i 1. tabel. = angiver hvilket forum tråden hører til.
Jeg vil gerne kunne lade en SQL sætning, hvor jeg trækker en liste ud over alle de forums jeg har.
Samtidig skal jeg for hver record i tbforums tabellen have et felt som er en sammentælling af tråde for det pågældende forum.
Har siddet og bakset med en SQL i lidt tid nu, og jeg er simpelhen ikke dygtig nok til at gennemskue det.
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
Jeg tror du skal bruge en LEFT JOIN i stedet for en INNER JOIN. Der kan være forums oprettet, hvor der endnu ingen tråde er. De vil ikke komme med, hvis du bruger en INNER JOIN.
SELECT tbforumns.ID AS ID, tbforumns.NAME AS NAME, COUNT(*) AS AntalTraade FROM tbforums LEFT OUTER JOIN tbforumthreads ON tbforums.ID = tbforumthreads.FORUM GROUP BY tbforums.ID, tbforums.NAME
Har rettet aaberg_cc's stavefejl, og indført outer join, samt undgået danske bogstaver i alias'erne
Uden group by vil du få noget som dette:
tbforumns.ID - tbforumns.NAME - tbforumthreads.NAME 1 - navn1 - tråd 1 1 - navn1 - endnu en tråd i 1 1 - navn1 - og igen 2 - navn2 - en tråd 2 - navn2 - en til 3 - navn3 - NULL
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.