Bonjour,
Je vous explique rapidement la structure de ma base:
Une table Utilisateur => idu, login, mdp,... et une table Messages => id, id_exped, id_recep, contenu, date_message
Je souhaite faire apparaitre la liste des derniers messages reçus ou envoyés pour l'utilisateur "Alpha"
1 2 3 4 5
| SELECT login, MAX(date_message), contenu, id_exped, id_recep FROM utilisateurs
INNER JOIN messages
ON idu != "id_Alpha" AND (idu = id_exped OR idu = id_recep)
WHERE id_exped = "id_Alpha" OR id_recep = "id_Alpha"
GROUP BY login |
Cela m'affiche bien le login de la personne Beta et non le miens, puisque je spécifie
Je groupes les messages par login et par date grâce au GROUP BY et à
Mais il y a toujours un problème au niveau de la jointure il me semble, le dernier message envoyé ne correspond pas (ce qui fait que je me retrouve avec le premier message alors que je voudrais afficher le dernier)
AND (idu = id_exped OR idu = id_recep)
Je pense qu'il faudrait spécifier le cas 1 avec une condition puis l'autre cas (le cas 2), peut être 2 jointures distinctes ou un EXISTS... mais je ne sais pas comment faire cela, les sous requêtes que j'essaye ne fonctionnent pas :/
Je vous serais très reconnaissant pour toute info la dessus ! Merci à vous
Partager