une pour les utilisateurs "user":
- id auto incrément
- un identifiant "num" unique par utilisateur
- son nom "nom"
et une autre table "score":
- id auto-incrément
- un identifiant correspondant à l'utilisateur "num"
- un score "score"
- une date "horodatage"
J'aimerai afficher dans un tableau, la liste des utilisateurs avec leur dernier score
on m'a déjà informé du HAVING, je me suis documenté, j'ai cherché mais je reste coincé.
En effet, voici ma requete:
SELECT u.nom, s.score, s.horodatage
from user u, score, s
where u.num = s.num
group by s.score
having max(s.id)
Si je retire le HAVING, tous les score s'affichent
si je met min(score) ou max(score), le premier score s'inscrit.
si je rajoute select max(s.id) pour un membre précis, çà me retourne bien l'id du dernier score
J'ai retourné la requête dans tous les sens, mais je ne comprend pas pour quoi le min et max donnent le même résultat
Merci d'avance
PS: je n'ai pas la dernière version de mysql, jsuis sur wampapache d'il y a au moins 1 an
max(id) renvoie un résultat non nul donc having, qui attend une condition booléenne, est toujours satisfait.
Je suppose que tu veux aussi la date du dernier score ?
SELECT u.nom, sm.score, sm.horodatage
FROM
(SELECT num, max(score) AS score GROUP BY num FROM score) m
JOIN score s ON (s.num = m.num AND s.score=m.score)
JOIN user u ON (u.num=s.num)
[mysql] Pb having max(id)
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.