yo,
zum anderen habe ich mal die wichtigen stellen aus deinem zitat verhorgehoben. und die frage ist, sind die usernamen unterschiedlich ? ich denke mal ja.
Ich denke mal nein. Für jede Gruppe gleicher "fotoid"'s sind die Werte aller dazugehörigen Zeilen der Spalte "user.name" gleich. Der Name bezieht sich auf das Foto und die Namen sind nicht die Voter.
schau, wenn immer nur ein und derselbe user für ein bild voten würde, dann bräuschte man gar keine funktion AVG(). mit anderen worten, mehrere personen stimmen für ein und dasselbe bild ab, ergo sind die usernamen und userid unterschiedlich. und genau das widerspricht sowohk ansi-sql als auch mysql.
der sinn, warum mysql das überhaupt macht ist, dass man normalerweise jede zusätzliche spalte, die keine aggregat-funktion ist, in die group by klausel mit angeben muss, wenn man aggregat funktionen benutzt. damit aber nicht für jede spalte in der group by klausel sortiert wird, sondern nur einmal und alle anderen werte sowieso eindeutig sind, hat mysql so ein feature entwickelt.
das verwirrt aber zu sehr, wie es genau auch dir und vielen anderen immer wieder passiert, weil mysql keine fehlermeldung mehr ausgibt, wenn man spalten ebenfalls mit angibt, die eben nicht mehr eindeutig sind. und genau da liegt der hacken.
Ilja