phpbar.de logo

Mailinglisten-Archive

Anzahl ermitteln

Anzahl ermitteln

Jan Kuehl jan.kuehl at software-tomography.com
Don Mar 11 18:23:54 CET 2004


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