phpbar.de logo

Mailinglisten-Archive

Abfrage über drei Tabellen

Abfrage über drei Tabellen

Clemens Nau cuNau at gmx.de
Die Jun 14 10:41:00 CEST 2005


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