Bonjour,
J'utilise MySQL 5.1.37
Je vais m'expliquer au mieux, j'ai 2 tables dans ma bdd:
[users]
user_id , username
1 , pseudo1
2 , pseudo2
3 , pseudo3
4 , pseudo4
5 , pseudo5
et
[pictures]
picture_id , picture_createtime , picture_path , user_id
1 , 1200000005 , ./chemin1 , 1
2 , 1200000002 , ./chemin2 , 1
3 , 1200000004 , ./chemin3 , 2
4 , 1200000001 , ./chemin4 , 3
5 , 1200000003 , ./chemin5 , 2
------------------------------------
Je souhaite extraire les 3 derniers enregistrement de la table "pictures" sans doublons "user_id" et trié par "picture_createtime DESC". Voici donc le résultat que je souhaite:
1 , 1200000005 , ./chemin1 , 1
3 , 1200000004 , ./chemin3 , 2
4 , 1200000001 , ./chemin4 , 3
Pour ca, j'essaye la requête suivante:
Le GROUP BY fonctionne bien, mais pas le ORDER BY, il ne trie pas comme je le veux...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT u.user_id, u.username, p.picture_path FROM pictures p, users u WHERE u.user_active = 1 GROUP BY p.user_id ORDER BY p.picture_createtime DESC
J'ai également essayé avec:
Mais ca ne va pas non plus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT u.user_id, u.username, p.picture_path, MAX(p.picture_createtime) AS orderbytime FROM pictures p, users u WHERE u.user_active = 1 GROUP BY p.user_id ORDER BY orderbytime DESC
Si quelqu'un a une idée de comment résoudre ce problème, je suis preneur
grand merci
Partager