Mailinglisten-Archive |
Sebastian Mendel schrieb: > SELECT `kategorie`.`KatBez`, > COUNT(`taschen`.*) AS `anzahl` > FROM `kategorie` > LEFT JOIN `taschen` > ON `kategorie`.`KatNr` = `taschen`.`Farbe` > GROUP BY `kategorie`.`KatNr` > Wieso kann diese Query das richtige Ergebnis liefern? Der LEFT JOIN sorgt auf der linken Seite fuer eine NULL-Verknuepfung fuer Blau. COUNT zaehlt aber eigentlich null-Werte mit. Damit muesste COUNT(taschen.*) fuer Kategorien mindestens immer 1 liefern und niemals 0. Ich habe diese Query jetzt nicht getestet, da die Frage allgemeiner zu COUNT und MySQL aufzufassen ist. Also genauer, wie COUNT in MySQL betreffs NULL genau ausgewertet wird. Ansonsten gaebe es als Loesungsvorschlag noch, falls vorhergehende nicht funktioniert: SELECT kategorie.KatBez, COUNT(*) FROM kategorie, taschen WHERE kategorie.KatNr = taschen.Farbe GROUP BY kategorie.KatNr UNION SELECT kategorie.KatBez, 0 FROM kategorie WHERE kategorie.KatNr NOT IN ( SELECT taschen.Farbe FROM taschen ) tschau -- Software-Tomography - we make the invisible visible! Jan Kuehl Software-Tomography GmbH Karlstr.7 D-03044 Cottbus e-Mail: jan.kuehl at software-tomography.com http://www.software-tomography.com Phone: +49 (0355) 4945077 ---------------------------- -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive