yo,
Hockey. Aber ist das wichtig?
ja, abfragen sind immer abhängig von dem datendesign, dort werden schon oftmals fehler gemacht, was dann die abfragen komplizierter macht. selbst für profis ist ein gutes design nicht trivial. es lohnt also immer ein blick darauf zu werfen, welche fachlichkeit eigentlich abgebildet werden soll. hilft auch immer zum verstädnis des problems.
aha? Für mich sieht das sehr in Ordnung aus. Was meinst du eigentlich? Den Substring?
genau das, was ich gesagt habe. du gibst spalten in einer gruppierung aus, die keine aggregatfunktion verwenden und nicht in der gruppierung sind, in deinem falle die spalte name.
zum besseren verständnis gebe ich dir ein beispiel. nehmen wir an, wir haben eine einfachte tabelle mit nachnamen und vornamen von kunden. nun mache ich eine gruppierung über den nachnamen, um herauszubekommen, wieiviel Müllers und Meiers ich in der tabelle habe.
SELECT nachname, COUNT(*) Anzahl
FROM tabelle
GROUP BY nachname
;
so weit kein problem. nun verwende ich aber den "mysql-bug-its-not-a-feature", indem ich noch die spalten vorname hinzufüge, ohne aber darüber zu gruppieren. und dann wid auch schon das problem für das dbms klar, welche der vielen möglichen vornamen (Horst, Egon, Peter...), die den gleichen nachnamen haben (sagen wir Müller), soll das dbms den anzeigen ? mysql nimmt in solchen fällen irgendeinen wert der zufällig gewählt wird. das schlimme daran ist, dadurch dass mysql keine fehlermeldung aus gibt fällt es den meisten benutzern gar nicht auf, das was falsch läuft.
nun aber zu deiner abfrage. ich benutze sehr gerne unterabfragen (in deinem falle genauer gesagt korrelierte unterabfragen), in der äußeren FROM klausel nehme ich tabellen, die mir die richtige anzahl an datensätze liefern, die ich zurück haben will.
SELECT s.id, s.name,
(SELECT COUNT(*)
FROM stat_szuordnung z2
WHERE z2.spieler_id = s.id
) AnzahlSpiele,
(SELECT COUNT(*)
FROM stat_tore t2
WHERE t2.spieler_id = s.id
) AnzahlTore,
FROM stat_spieler s
;
damit hast du schon mal den namen der spieler, seine anzahl der spiele und die anzahl der tore, damit kannst du erst mal weiter probieren, bedenke aber nicht durch 0 zu teilen.
Ilja