fanatiker: MySQL: Zählt es falsch?

Beitrag lesen

Hallo,

meine Datenbank stellt den Hintergrund einer (noch im Aufbau befindlichen) Bilder-Galerie dar.
Der Aufbau ist logisch:
Kategorien > Unterkategorien > Alben > Bilder.

Kategorien und Unterkategorien sind in der Tabelle gal_cats. Alben in der Tabelle gal_albums. Bilder in der Tabelle gal_pics.

Für die Übersicht auf der Startseite soll der Name der Kategorie, nebst der Anzahl der sich darin befindlichen Alben und die Anzahl der Bilder (rekursiv) stehen.

Für mein Beispiel sehen die Tabellen momentan wie folgt aus:

Der entsprechende SQL sieht so aus:

  
SELECT c.ID, c.name, count(a.ID) ac, count(p.ID) pc  
FROM  
(gal_cats c LEFT JOIN gal_albums a ON c.ID=a.cat_id)  
  LEFT JOIN gal_pics p ON a.ID=p.album_id  
GROUP BY c.ID  

(ac steht für album-count, und pc für picture-count)

Das Ergebnis wäre Folgendes:

Die "4" im Feld "ac" stimmt hier nicht. Ich jedenfalls zähle nur drei Alben in der Kategorie 2. Ich vermute, MySQL zählt hier etwas mit, was man nicht sieht/erkennt.

Welcher Denkfehler ist mir hier unterlaufen?

Gruß
Fanatiker