Ilja: (my)SQL-Query mit mehreren Tabellen

Beitrag lesen

yo,

je öfter ich solche nicht funktionierenden abfragen sehe, wo viele glauben, dass es richtig ist und wohl nicht mehr wiederkommen werden, könnte ich mysql für diese blöde errungenschaft mit GROUP BY erschiessen.

falls du trotz dem glauben, eine funktionierende abfrage zu besitzen, nochmals hier ins forum schaust, dann wundere dich nicht, dass deine abfrage merkwürdige daten ausschmeißt. mysql verleitet eine grundregel zu verletzten, indem es keine fehlermeldung anzeigt, wenn spalten ausgegeben werden, über die nicht gruppiert wurde und die keine aggregat-funktionen sind. und genau das hast du mit dem * Symbol gemacht. Ausserdem ist der UNION unnötig, machen einen OUTER JOIN daraus.

deine abfrage müsste so lauten, die allerdings erst ab der Version 4.1+ funktioniert:

SELECT *,
   IFNULL((SELECT SUM(votes.voting) votes v2 WHERE v2.fid = v1.fid), 0) AS Rating
FROM fotos f
LEFT JOIN votes v1 ON f.id = v1.fid
ORDER BY Rating DESC