19. oktober 2008 - 16:49Der er
7 kommentarer og 1 løsning
self-join der tæller antal "childs"
Jeg skal have fundet det specifikke child-count for hver af mine rækker. Jeg har forsøgt mig med følgende, men får vist brug for hjælp, da min query returnere det overordnede child-count i stedet.
SELECT *, sub.childCount FROM `thread`, (SELECT COUNT(t2.id) as childCount FROM thread t, thread t2 WHERE t.parent_id = t2.id AND t.parent_id != 0) as sub
Min test data består af 4 rækker, hvor id 3 og 4 er child til id 2.
Med overordned mener jeg at queryen returnerer 2 som childcount til alle rækker (også med din rettelse). Til din anden kommentar, har du ret, t2.parent_id må selvfølgelig gerne være 0 (default value).
Det, du gerne vil have frem, er en sammentælling i følgende stil, hvor du kan se, at id 1 har 1 'barn', dvs. der er en række, der peger på id 1 som parent_id:
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.