Bonjour à tous,
je cherche à conditionner un assignation dans une jointure , mais je ne sais pas trop comment m'y prendre.
J'ai la requête suivante :
Or il se peut que dans
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT fc.libelle, ft.titre, fc.idCategorie, fc.last_thread_id, fc.last_post_id, fc.nb_msg,ft.lastActivity, fl.idThread as idTlu,fl.idPost as idPlu,fl.idUser as idUlu,fl.dateLec, u.nom,u.prenom FROM `forum_categorie` fc LEFT JOIN forum_lecture fl ON fl.idThread = fc.last_thread_id AND fl.idUser = 1 LEFT JOIN forum_thread ft ON fc.last_thread_id = ft.idThread LEFT JOIN forum_post fp ON fp.idPost = fc.last_post_id LEFT JOIN users u ON u.idUser = fp.idUser ORDER BY fc.libelle ASC
fp.idUser soit null (si aucune réponse à un thread) et donc je souhaiterais à la place utiliser ft.idUser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part LEFT JOIN users u ON u.idUser = fp.idUser
En parcourant le forum je suis tomber sur l'utilisation de CASE WHEN. J'ai tester ceci :
Mais sans succès, il y'a sans doute quelque chose qui m'échappe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part LEFT JOIN users u ON CASE WHEN(fp.idUser IS NOT NULL) THEN u.idUser = fp.idUser ELSE u.idUser = ft.idUser
Une idée ?
Merci
PS : je suis en mysql 5.1.31
Partager