Mailinglisten-Archive |
Hallo, ich habe Probleme eine Abfrage hinzubekommen, die über mehrere Tabellen geht. Da MySQL 3.23.x läuft, kann ich nicht mit SubSelects arbeiten. Es gibt 3 TB's: user (u_id, u_name, u_score) rival (r_id, r_name, r_value) user_hit (uh_id, u_id, r_id) Benutzer (user), Gegner (rival) und die besigten Gegner pro Benutzer (user_hit). Jeder Gegner hat einen festen Wert (r_value). Ist ein Gegner besiegt, gibt es einen Eintrag in die TB user_hit, wo über die jeweiligen ID's festgehalten wird, wer welchen Gegner besiegt hat. Zusätzlich wird das Punktekonto eines Benutzers (u_score) um den Wert des besiegten Gegners erhöht. Bisher wurde eine Rangliste erstellt, die einfach die Benutzer, nach Punkten sortiert, ausgegeben hat. Das soll sich jetzt ändern und da fängt mein Problem an. Die neue Rangliste soll nach den 10 schwersten, besiegten Gegnern sortiert sein (best of ten). Sind also bereits 15 Gegner besiegt, sollen die 5 leichtesten nicht in die Ranglistenwertung mit eingehen. Ich müsste also pro Benutzer die "Hitliste" abfragen, dann für jeden besigten Gegner den Wert aus der Gegner-TB auslesen und davon nur die 10 besten nehmen. Daran bin ich aber bisher kläglich gescheitert. Kann mir jemand mit einer möglichen Abfrage weiter helfen? Oder war das zu verwirrend? Danke schon mal! -- Gruss Clemens P.S.: Um so schwerer ein Gegner zu besiegen ist, um so höher ist auch der Wert den man dazu bekommt. Man kann also die Schwierigkeit der Gegner über r_value sortieren. -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive