hi, komme hier an einer Stelle nicht weiter, vielleicht weiß von euch jemand rat
es geht darum, eine Menge von "spielern" mitsamt ihrem "punktestand" sowie - und hier wirds schwierig - ihrem "rang" (also der anzahl der besseren spieler + 1) mittels eines Querys auszulesen
mein Ansatz (auf das Wesentliche reduziert):
Problem: in der inneren WHERE-Klausel kennt er das äußere score nicht, jedenfalls nicht auf diese Weise. Gibt es da evt. eine Möglichkeit, das nach innen "durchzuschleifen" bzw. lässt sich die Problemstellung evt. anders lösen (mit nem JOIN oder so)?
Grüße, Benny
PS: es muss ohne Stored Procedures gehen
es geht darum, eine Menge von "spielern" mitsamt ihrem "punktestand" sowie - und hier wirds schwierig - ihrem "rang" (also der anzahl der besseren spieler + 1) mittels eines Querys auszulesen
mein Ansatz (auf das Wesentliche reduziert):
Code:
SELECT player, score, (
SELECT COUNT(*)+1
FROM (
SELECT 1
FROM players
WHERE score>plr.score
) AS better
) AS rank
FROM players AS plr
WHERE player IN (....)
Problem: in der inneren WHERE-Klausel kennt er das äußere score nicht, jedenfalls nicht auf diese Weise. Gibt es da evt. eine Möglichkeit, das nach innen "durchzuschleifen" bzw. lässt sich die Problemstellung evt. anders lösen (mit nem JOIN oder so)?
Grüße, Benny
PS: es muss ohne Stored Procedures gehen