Código SQL:
Ver originalSELECT j.jugador_nombre, j.jugador_apellido
FROM jugador AS j
ORDER BY (SELECT SUM(p.cantidad_puntos) FROM puntos AS p WHERE p.puntos_jugador=j.jugador_dni)
No lo pudiste resolver porque no lo analizaste bien: El orden de los puntajes es trascendente para ubicar el orden en PUNTOS, pero como eso no aparece en JUGADOR, debes buscar un atributo de JUGADOR que si aparezca en PUNTOS, y eso sólo puede ser una cosa:
JUGADOR_DNI.
A como lo veo yo, hay dos formas de lograr lo que quieres. La mejor es usar INNER JOIN:
Código MySQL:
Ver original jugador_nombre,
jugador_apellido,
puntos
j.jugador_nombre,
j.jugador_apellido,
jugador_dni,
SUM(P.cantidad_puntos
) PUNTOS
Esto problablemente por cada SELECT del UNION.
La otra forma requiere de una función que no creo que te hayan enseñado, al menos como se me ocurre a mí
Código MySQL:
Ver original j.jugador_nombre,
j.jugador_apellido
j.jugador_nombre,
Francamente, ni sé si funciona. Yo me quedaría con la otra.