Autor |
Nachricht |
lordle
Threadersteller
Dabei seit: 14.12.2001
Ort: Augsburg
Alter: 48
Geschlecht:
|
Verfasst Di 05.04.2005 17:46
Titel [MySQL]: Highscore-Sortierung gesucht |
|
|
ich bin grad etwas blind.
Ich hab ne Highscore-Tabelle, in der jede Punktzahl eingetragen wird (ich will wissen, wer wie oft mit welchem ergebnis gespielt hat, um evtl. cheater aufzudecken).
für den highscore, möcht ich aber dann die maximal erreichte punktzahl pro Benutzer mit seinem profil eintragen.
Dafür folgende Highscore-Tabelle:
Code: | |------------||------------||------------||------------|
ID SCORE BENUTZER PROFIL
|------------||------------||------------||------------|
1 234 depp1 looser
|------------||------------||------------||------------|
2 450 depp2 cooler sack
|------------||------------||------------||------------|
2 500 depp1 cooler sack
|------------||------------||------------||------------|
2 150 depp2 looser
|------------||------------||------------||------------|
2 460 depp2 cooler sack
|------------||------------||------------||------------|
|
mein erster SQL-Code: Code: | SELECT MAX(SCORE) AS SCORE, BENUTZER, PROFIL
FROM HIGHSCORE
GROUP BY BENUTZER
ORDER BY SCORE DESC
|
Bekomm dann aber als ergebnis komischerweise:
Code: | 1. depp1 500pkt looser
2. depp2 460pkt cooler sack |
Die Punkte und Benutzerzuordnung stimmt, aber das Profil ist das erste, welches derjenige erreicht hat. (Ich war zu faul, um eine 1:n Beziehung für das Profil aufzubauen, deswegen steht das Profil im Klartext daneben)
mein zweiter SQL-Code Code: | SELECT SCORE, BENUTZER, PROFIL
FROM HIGHSCORE
HAVING MAX(SCORE) = SCORE
ORDER BY SCORE DESC |
Damit krieg ich kein Ergebnis. Ich peils hat grad überhaupt net, was mach ich flasch?
|
|
|
|
|
Skyw4lker
Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 43
Geschlecht:
|
Verfasst Mi 06.04.2005 09:27
Titel
|
|
|
du kannst im Projektionsteil (das nach dem SELECT) , wenn du eine Gruppenfunktion verwendest (hier MAX), nur
spalten einsetzen die auch hinter dem GROUP BY stehen.
also entweder
Code: |
SELECT MAX(SCORE) AS SCORE, BENUTZER, PROFIL
FROM HIGHSCORE
GROUP BY BENUTZER,PROFIL
ORDER BY SCORE DESC
|
was aber nicht soviel sinn machen würde
daher
Code: |
SELECT MAX(SCORE) AS SCORE, BENUTZER
FROM HIGHSCORE
GROUP BY BENUTZER
ORDER BY SCORE DESC
|
die having komponente ist nur nach GROUP BY zugelassen, daher funktioniert das hier nicht
Code: |
SELECT SCORE, BENUTZER, PROFIL
FROM HIGHSCORE
HAVING MAX(SCORE) = SCORE
ORDER BY SCORE DESC
|
Zuletzt bearbeitet von Skyw4lker am Mi 06.04.2005 09:31, insgesamt 2-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Mi 06.04.2005 09:46
Titel
|
|
|
Das raff ich irgendwie auch nie bis zum Letzten...
|
|
|
|
|
Skyw4lker
Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 43
Geschlecht:
|
Verfasst Mi 06.04.2005 10:59
Titel
|
|
|
ich hab vor 3 wochen ne fette Klausur über DB Programmierung geschrieben und seit dem weiss ichs
|
|
|
|
|
lordle
Threadersteller
Dabei seit: 14.12.2001
Ort: Augsburg
Alter: 48
Geschlecht:
|
Verfasst Mi 06.04.2005 11:47
Titel
|
|
|
Skyw4lker hat geschrieben: | (...) Code: |
SELECT MAX(SCORE) AS SCORE, BENUTZER, PROFIL
FROM HIGHSCORE
GROUP BY BENUTZER,PROFIL
ORDER BY SCORE DESC
|
was aber nicht soviel sinn machen würde
daher
Code: |
SELECT MAX(SCORE) AS SCORE, BENUTZER
FROM HIGHSCORE
GROUP BY BENUTZER
ORDER BY SCORE DESC
|
|
öhm. funktioniert leider auch keins davon?
ich hab die faxen dicke! ich wechsle auf 4.1 und dann gibs subselects. ende aus! *G*
|
|
|
|
|
Skyw4lker
Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 43
Geschlecht:
|
Verfasst Mi 06.04.2005 15:07
Titel
|
|
|
was kriegst du denn zurück?
das gleiche wie oben ?
btw ich hab die tabelle mal so erstellt und den Select
Code: |
SELECT MAX(SCORE) AS SCORE, BENUTZER
FROM HIGHSCORE
GROUP BY BENUTZER
ORDER BY SCORE DESC
|
probiert und der tuts,
gruss
Stefan
Zuletzt bearbeitet von Skyw4lker am Mi 06.04.2005 15:17, insgesamt 3-mal bearbeitet
|
|
|
|
|
|
|
|
Ähnliche Themen |
MySQL/PHP sortierung
[PHP, MySQL] Sortierung bei Abfrage
[PHP/MySQL] Sortierung einer Liste
[PHP / MySQL] MySQL-Funktion gesucht: letzteÄnderungTabelle
Highscore in PHP
Highscore im Flash Game?
|
|