Hallo, ich habe folgendes Problem:
Ich habe hier diese Abfrage, die recht komplex ist. Sie gibt die koordinaten von spielern aus und vergleicht die spielernamen (p.nick) mit der spielerliste in der rangliste (pr.spieler). Die Abfrage funktioniert, allerdings werden die Einträge nicht nach Koordinaten sortiert. Wenn ich mit ORDER statt GROUP arbeite werden die Einträge zwar geordnet, aber ich erhalte logischerweise so einige doppelte Einträge.
Kann mir da jemand weiterhelfen?
thx,
LMS
Ich habe hier diese Abfrage, die recht komplex ist. Sie gibt die koordinaten von spielern aus und vergleicht die spielernamen (p.nick) mit der spielerliste in der rangliste (pr.spieler). Die Abfrage funktioniert, allerdings werden die Einträge nicht nach Koordinaten sortiert. Wenn ich mit ORDER statt GROUP arbeite werden die Einträge zwar geordnet, aber ich erhalte logischerweise so einige doppelte Einträge.
PHP-Code:
$sql = "SELECT p.koords koords, p.mond mond, p.nick nick, p.planet planet,
p.ally ally, p.timestamp timestamp, u.username username,
ar.platz allyplatz, ar.member allymember, pr.punkte spielerpunkte
FROM pk_map_planets p, pk_users u, pk_map_ally_ranks ar, pk_map_punkte_ranks pr
WHERE u.user_id = p.user_id
AND BINARY p.ally = BINARY ar.ally
AND p.koords > ". $start ."
AND p.koords < ". $end ."
AND trim(BINARY p.nick) = BINARY pr.spieler
UNION
SELECT p.koords koords, p.mond mond, p.nick nick, p.planet planet,
p.ally ally, p.timestamp timestamp, u.username username,
ar.platz allyplatz, ar.member allymember, NULL spielerpunkte
FROM pk_map_planets p, pk_users u, pk_map_ally_ranks ar
WHERE u.user_id = p.user_id
AND p.koords > ". $start ."
AND p.koords < ". $end ."
AND BINARY p.ally = BINARY ar.ally
GROUP BY p.koords ";
thx,
LMS
Kommentar