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:

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
Le GROUP BY fonctionne bien, mais pas le ORDER BY, il ne trie pas comme je le veux...

J'ai également essayé avec:

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
Mais ca ne va pas non plus

Si quelqu'un a une idée de comment résoudre ce problème, je suis preneur

grand merci