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