Mailinglisten-Archive |
Jan Kuehl wrote: > 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. ja wenn COUNT(`taschen`.*) ein falsches Ergebnis liefert dann muss man eben COUNT(`taschen`.`Nr`) machen. ... und COUNT zählt _keine_ NULL-Werte mit! "COUNT(expr) Returns a count of the number of non-NULL values in the rows retrieved by a SELECT statement:" http://www.mysql.com/doc/en/GROUP-BY-Functions.html#IDX1446 -- Sebastian Mendel (www.sebastianmendel.de) *www.warzonez.de* | www.tekkno4u.de | www.nofetish.com -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive