Selecteren per speler max waarde

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Quote Anchor link
Hallo,
Ik heb een tabel in mysql met sectortijden erin(van een race). Het ziet er als volgt uit:
id, trackID, checkID, score, player

Hier is checkID het id van de sector, score is de tijd op deze sector, en player vanzelfsprekend de speler die de tijd heeft neergezet.
Nu wil ik de ranglijst hieruit krijgen, iedere speler kan maar 1x in deze ranglijst voorkomen, maar wel vaker in de tabel. Ik had hiervoor de volgende sql bedacht:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= "SELECT checkID,player,MIN(score) AS score FROM checkpoints WHERE trackID = 1 GROUP BY player ORDER BY checkID,id";
?>


Deze pakt echter alleen maar de eerste sector(heb getest in phpmyadmin). Iemand die weet hoe ik 'm alle sectoren kan laten pakken?
 
PHP hulp

PHP hulp

25/04/2024 14:48:45
 
Jesper Diovo

Jesper Diovo

19/02/2009 17:04:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
SELECT
  DISTINCT player,
  checkID,
  score
FROM
  checkpoints
WHERE
  trackID = 1
ORDER BY
  checkID,id


Zoiets? Overigens is het niet slim om op checkID/id te sorteren. Een id is niets, je kunt beter op velden sorteren waar echt iets in staat waar je iets mee doet.
 
Frank -

Frank -

19/02/2009 17:07:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
SELECT
  checkID,player,MIN(score) AS score
FROM checkpoints
WHERE trackID = 1
GROUP BY player
ORDER BY checkID,id

2 kolommen in de SELECT (die niet in een aggregate functie staan) en 1 kolom in de GROUP BY. De query is dus onmogelijk en hoort een dikke foutmelding op te leveren.

Alle kolommen die in de SELECT staan en die niet in een aggragate functie staan, MOETEN (!!!) in de GROUP BY staan.

Dat MySQL hier geen foutmelding op geeft, zegt veel over de kwaliteit van MySQL. Het is wiskundige onzin en hoort dus een foutmelding op te leveren.
 
Quote Anchor link
Die query van jou werkt niet. Distinct had iets tegen meer dan 1 of 2 dingen selecten ofzo. Was ik al eerder achtergekomen, spelers komen nu in ieder geval meer dan 1x terug per sector

@frank: ja, ik heb mysql niet gemaakt hè :P
Gewijzigd op 01/01/1970 01:00:00 door Deze site laat je geen account deleten
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.