Salut à tous,
J'ai une question à 1000 $ , je pense malheureusement qu'il n'a pas de "bonne" solution à mon problème... arf
Bref, j'essaie quand même :
- Deux tables : Users et Sessions
- Un "User" peut avoir plusieurs "Sessions", donc relation 1 état N de Users à Sessions
Maintenant je voudrais afficher tous les Users avec uniquement la dernière Session qui a été créée
Pour celà il y a le champ Created de type "Datetime" dans Sessions.
La requète :
Code :
SELECT User.Id AS UserId, User.Active AS UserActive, User.Username AS UserUsername, [...] Session.Created AS SessionCreated FROM site_users AS User LEFT JOIN site_sessions AS Session ON User.Id = Session.UserId GROUP BY User.Id ORDER BY User.Username ASC, User.Name ASC, User.Firstname ASC, Session.Created DESC
|
Ca fonctionne presque, à l'exeption que ça me renvoit la première Session sans prendre en compte le "Session.Created DESC", alors que si j'enlève "GROUP BY User.Id", le triage est correcte (1erè ligne pour l'utilisateur "Z" avec le dernier enregistrement de Session) mais ça me retourne X fois le même utilisateur (ce qui est normal mais je ne veux pas).
Vos propositions sont les bienvenues !
Message édité par Pascal_B le 20-01-2008 à 16:25:53