Ergebnis 1 bis 5 von 5

Thema: Datenbankabfrage - nur höchster Wert pro User

  1. #1
    HTML Newbie
    Registriert seit
    10.10.2008
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Datenbankabfrage - nur höchster Wert pro User

    Hallo,
    gegeben ist folgende Datenbankabfrage:

    Code:
    $q = "SELECT   `username`, `score`, `time`
          FROM     `highscores`
          WHERE    `nid` = '" . mysql_real_escape_string($node->nid) . "'
          ORDER BY `score` DESC
          LIMIT    0,10";
    Ausgegeben wird jeweils der Username, seine Punktezahl und das Datum, beginnend mit der höchsten Punktezahl. Soweit so richtig, leider werden die User so mehrfach ausgegeben. Ich würde gerne erreichen, dass jeder User nur einmal in der Liste auftaucht und zwar nur mit seiner höchsten Punktzahl.

    Da die Liste ja ohnehin mit der höchsten Punktzahl beginnt, sollte es am einfachsten sein, wenn Zeilen mit Usern die bereits abgefragt wurden einfach übersprungen werden, bis die Top-10 voll ist. Oder was meint ihr?

    Und wenn das der beste Weg ist, wie ist dann die Lösung?

    Gruß,
    Uwe
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard AW: Datenbankabfrage - nur höchster Wert pro User

    schon ma an nen group by gedacht?
    und ich habs mal in den db-bereich verschoben

    gut nacht
    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

  3. #3
    König(in) Avatar von Grevas
    Registriert seit
    20.04.2009
    Ort
    In meiner Wohnung.
    Alter
    30
    Beiträge
    1.039
    Danke
    0
    Bekam 5 mal "Danke" in 5 Postings

    Standard AW: Datenbankabfrage - nur höchster Wert pro User

    Probiers mal mit "SELECT DISTINCT". Wenns nicht geht, gib mal ein Beispieldatensatz dann probier ichs selbst ma aus

    Die genaue Syntax musst dir leider selbst ergooglen, bei einem Wert könnt ichs dir noch sagen - aber derzeit keine Lust weiterzusuchen ^^"

  4. #4
    HTML Newbie
    Themenstarter

    Registriert seit
    10.10.2008
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Datenbankabfrage - nur höchster Wert pro User

    Danke, das ist es. Habe jetzt einfach
    Code:
    GROUP BY `username`
    vor ORDER BY gesetzt und fertig. Ich hätte nicht gedacht, dass das so leicht sein kann.

    Gruß,
    Uwe

  5. #5
    HTML Newbie
    Themenstarter

    Registriert seit
    10.10.2008
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Datenbankabfrage - nur höchster Wert pro User

    Das war es dann doch nicht so ganz, habe die Lösung aber nun gefunden.

    Mit einem Subquery muss erstmal die höchste Punktzahl des Users ermittelt werden, dann schaut das Ganze so aus:

    Code:
    SELECT
    
        h.username, h.score, h.time
    
    FROM
    
        highscores h,
    
        (SELECT username, MAX(score) AS max_score
    
        FROM highscores
    
        WHERE nid = {$nid}
    
        GROUP BY username) AS mpu
    
    WHERE
    
        h.username = mpu.username
    
        AND h.score = mpu.max_score
    
    ORDER BY score DESC
    
    LIMIT 10
    PS: Ist mir nicht selbst eingefallen, ich versteh davon ja kaum was, aber es klappt einwandfrei.

    Gruß,
    Uwe

Ähnliche Themen

  1. Datenbankabfrage sicher?
    Von lolman im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 9
    Letzter Beitrag: 24.10.2006, 15:34
  2. Datenbankabfrage mit ColdFusion
    Von dragonheart im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 28.03.2006, 14:42
  3. Fehler bei Datenbankabfrage
    Von yngvar im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 14
    Letzter Beitrag: 16.06.2005, 09:40
  4. Datenbankabfrage auf Website
    Von holger_155 im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 15.09.2004, 09:56
  5. Datenbankabfrage Alter
    Von BlueWonder im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 10.05.2004, 17:17

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •