Bonjour à tous,
Soit la table dossiers :
id nom date 1 Toto 2023-11-01 2 Tata 2023-11-02 3 Tutu 2023-11-03
et la table comments
id id_dossier comment datetime user 1 2 bla bla 2023-11-02 09:00:00 user 2 2 bla bla 2023-11-02 09:30:00 admin 3 2 bla bla 2023-11-02 19:30:00 user 4 1 bla bla 2023-11-01 19:30:00 user 5 1 bla bla 2023-11-01 20:00:00 admin 6 3 bla bla 2023-11-03 08:30:00 user
Comment trier dossier en fonction du champ datetime de comments sachant que le dossier qui comporte le dernier commentaire écrit par le user "user" doit s'afficher en 1er et les autres à la suite dans l'ordre de comments.datetime puis user "user" ?
Dans cet exemple on aurait : 2, 1 et 3
J'ai fait :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part SELECT d.*, c.date FROM dossiers d LEFT JOIN comments c on d.id = c.id_dossier GROUP BY c.id_dossier ORDER BY c.datetime DESC, FIELD(user,'user')
Mais ce n'est pas bon. J'ai ajouté une clause GROUP BY pour ne pas que la boucle affiche les dossiers autant de fois qu'ils sont de commentaires...
Bref je sèche.
Merci de votre aide.
Partager