Mailinglisten-Archive |
On 29-Apr-2001 Michael Schmitz wrote: > Hallo Liste, > > habe ein Problem mit ORDER BY. > habe zwei Tabellen, > > Tabelle1 Seiten > Id > Name > Link > Datum > usw. > > Enthält Daten uber Seiten usw. > > Tabelle2 Wahl > Id > SeitenId > Vote > UserId > usw. > > Enthält Votings der Teilnehmer > > Wenn ich nun die Ergebnisse so aufbereiten will, dass ich die Seiten Daten > nach AVG(Vote) sortiert habe, bekomme ich ein falsches Ergebniss. > > SELECT avg(Wahl.Vote) AS Schnitt,count(Wahl.Vote) AS > Anzahl,Seiten.Name,Seiten.Link,Seiten.Datum usw. FROM Seiten LEFT JOIN Wahl > ON Seiten.Id=Wahl.SeitenId GROUP BY Seiten.Id ORDER BY Schnitt z.B. (ASC). > > Das Ergebniss sieht immer gleich aus. Alle Datensätze von Seiten für die es > keinen Datensatz in Wahl gibt stehen am Anfang. > Obwohl der avg Wert 0 sein müsste. Wo steht das? Für die Seiten, für die es keine Datensätze in Wahl gibt, ist Vote NULL (d.h. es kann keine Angabe über den Wert von Wahl gemacht werden, was ja auch stimmr). AVG(NULL) ist ebenfalls NULL, und NULL wird immer nach oben sortiert. Michael -- Michael Bergbauer <michael.bergbauer_(at)_gmx.net> Use your idle CPU cycles. See http://www.distributed.net and win $ 1 000. Visit our mud Geas at geas.franken.de Port 3333 --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive