Fehler bei Abfrage in MySlq Version 4.0, 4.1 geht

Marius Heil

Erfahrenes Mitglied
Hi,
die Abfrage hier sollte dazu dienen aus meiner Usertabelle etwas abzufragen, auf MySQL 4.1 geht das auch perfekt, nur bei 4.0 Bekomm ich einen Fehler, der aber nix groß aussagt, nur Syntaxfehler.
Jetzt würde mcih interessieren, was sich da von 4.0 auf 4.1 geändert hat.

SELECT t1.`Email` , t1.`Username` , t1.`Punkte` , t1.`Geld` , (

SELECT (
COUNT( * ) +1
)
FROM user AS t2
WHERE t2.`Punkte` > t1.`Punkte`
) AS `Rang`
FROM user AS t1
WHERE t1.`Email` = "test@user.de"
ORDER BY `Rang`


Danke schonmal, Marius
 
Erst ab Version 4.1 kennt MySQL Subselects.

Hier eine andere Möglichkeit, basierend auf dem Workaround von Tom:
Code:
SELECT 
t1.`Email` , 
t1.`Username` , 
t1.`Punkte` , 
t1.`Geld` ,
COUNT(t2.`id`) + 1 AS `Rang`
FROM user AS t1
LEFT JOIN user AS t2
ON (t2.`punkte` > t1.`punkte`)
GROUP BY t1.`id`
ORDER BY `Rang`
Sollte eine `id` nicht Dein Primärschlüssel sein, musst Du das noch anpassen.

Testen konnte ich das allerdings auch nur unter MySQL 4.1.

Gruß hpvw
 
Zurück