Hiraja: Count zählt falsch

Beitrag lesen

Hallo Leute ich habe folgende Datenbank:

Tabelle Story, Favoriten und CoAutoren

Wie man unschwer erkennen kann geht es hier um eine Geschichtendatenbank mit Multiautorenfunktion und Favoriten.

Die Daten darin sind folgendermaßen aufgebaut:
Der Hauptautor legt die Geschichte an und steht dort in uid. sid ist dann der Schlüssel der Geschichte.
Andere User kann er als Co-Autoren bestimmen, welche dann über den Schlüssel sid und uid in der Tabelle CoAutoren steht.
Als nächstes kann ein anderer User eine Geschichte als Favorit speichern. Hierbei wird die sid der Geschichte als item gespeichert.

Folgende Ausgangssituation habe ich:
1 Geschichte von user 8 und den Usern 1,2,3 und 4 als Co-Autoren und 1 User (uid 7) hat die Geschichte in seinen Favs. Ich verwende folgenden Select um dem aktuellen User (das kann der Autor ABER auch einer der Co-Autoren sein) die Anzahl der User anzuzeigen, die eine seiner Geschichten als Favs hat.

Story:
---------
|sid|uid|
---------
| 1 | 8 |
---------

CoAuthors:
---------
|sid|uid|
---------
| 1 | 1 |
---------
| 1 | 2 |
---------
| 1 | 3 |
---------
| 1 | 4 |
---------

Favoriten:
----------
|item|uid|
---------
| 1  | 7 |
----------

SELECT s.title, s.sid, count(fs.item) as fscount FROM Story as s LEFT JOIN Favoriten as fs ON s.sid = fs.item AND fs.type = 'ST' LEFT JOIN CoAutoren AS c ON s.sid = c.sid WHERE (s.uid = '8' OR c.uid = '8') AND s.validated > 0 GROUP by fs.sid

Wenn ich diesen SQL ausführe, erhalte ich immer 4 im Feld fscount. Es sollte aber nur 1 drinstehen.

Der SQL soll also für uid 1,2,3,4 und 8 das selbe Ergebnis bringen und für 7 darf er nix bringen.

Ich bin echt schon wahrsinnig und weiß nicht weiter. Hoffe ihr könnt mir helfen.

MFG Hiraja