Requète MySQL

Top Page

Reply to this message
Author: Frédéric
Date:  
To: ML Guilde
Subject: Requète MySQL
Bonjour,

Je fais appel aux gurus SQL...

Soit la table suivante :

votes
- date (timestamp)
- classement (int)
- numVotant (int)
- numObjet (int)
- numEvenement (int)

Les 3 numXXX sont des clés qui pointent sur les clés primaires de 3 tables
(votants, photos et evenements).

Le vote se déroule comme suit : un votant doit classer n objets (n étant
variable suivant l'évènement) ; ce classement est stocké dans la table
vote, ce qui fait à chaque fois n entrées. Un votant peut voter plusieurs
fois.

On se retrouve donc avec, par exemple (je vire la date, qui sert juste à
trier dans l'ordre), si n = 3 :

classement   numVotant   numObjet   numEvenement
1            1           2          1
2            1           5          1
3            1           8          1
1            2           5          1 
2            2           1          1
3            2           3          1
1            1           1          1
2            1           5          1
3            1           8          1
1            1           9          2
2            1           4          2
3            1           6          2
1            2           10         2
2            2           4          2
3            2           1          2


(au passage, un objet peut appartenir à plusieurs évènements ; il y a une
autre table pour faire la relation).

Je voudrais, pour un évènement donné, récupérer le *dernier* vote de chaque
votant, soit les numéros des n objets qu'il àa classé en dernier.

On doit donc récupérer :

évènement 1, votant 1 : 1, 5, 8
évènement 1, votant 2 : 5, 1, 3
évènement 2, votant 1 : 9, 4, 6
évènement 2, votant 2 : 10, 4, 1

Est-il possible de faire ça avec une requète SQL ?

Merci d'avance.

PS : si c'est trop merdique avec ce design, et que vous avez d'autres
suggestions, je suis bien sûr preneur ; l'idée est d'éviter de faire un
traitement en dehors de MySQL.

--
Frédéric

http://www.gbiloba.org