Jeg samler slet ikke på point, tak. Men giver gerne en forklaring.
En LEFT JOIN tager alt med fra den venstre tabel. Der hvor der så ikke findes noget der passer i den højre tabel, indsættes en masse NULL-værdier. Men der kommer jo en række, så count(*), der tæller rækker, giver et 1-tal. count på et feltnavn løber dermod felterne igennem, og tæller kun dem med der er ikke-NULL.
Det eneste jeg gjorde var at droppe c.* fra select, og kun selecte den kolonne der var med i GROUP BY. Det plejer at være korrekt, og MSSQL ville bestemt ikke godtage det her.
Jeg må sige at jeg ikke satte mig ind i det, men blot rettede det jeg så som en oplagt fejl.
erikjacobsen > Måske du vil forklare mig hvorfor det ikke fremkalder en fejl, for det forstår jeg faktisk ikke. SELECT categories.* vil jo minimum returnere to kolonner, name og id (jeg mener da at name er en kolonne i categories)??
At tage en kolonne med, som ikke står i group by-listen, og som ikke er i en aggregatfunktion er en fejl i MSSQL (og andre), men ikke vi mange (alle?) versioner af MySql. Og det er en ting man kan undre sig over, ganske givet.
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.