[RESOLU] SOS Au experts de mysql

Eléphant du PHP | 417 Messages

09 févr. 2013, 08:24

Bonjour,

j'ai deux table : users et messages

les champs qui nous intéressant dans cette requête sont :

table users : idUser, nameUser, surNameUser
table messages : idMessage, from (l'identifiant de l'expéditeur) , to (l'identifiant de destinataire), subjectMessage, textMessage, dateMessage

pour un user j'aimerai récupérer les messages qu'il a reçu avec le nom et prénom de l’expéditeur, dans la table messages j'ai l'identifiant de l'expéditeur

pour récupérer les message reçu pour Julien (identifiant 1 par exemple ) je fait
SELECT * FROM users, messages WHERE users.idUser = messages.to AND to = 1; 
Avec cette requête je récupère toutes les informations dans j'ai besoins sauf le nameUser et surNameUser de l’expéditeur (quand j'affiche le résultat de nameUser et surNameUser j'ai le nom et prénom de destinataire ce qui est normal parce que ici on fait une requete avec son identifiant)

est ce que si possible de récupérer le nom et prénom de l'expéditeur avec ma requête ?

Merci d'avance

ViPHP
xTG
ViPHP | 7331 Messages

09 févr. 2013, 12:01

Il te faut une double jointure.
SELECT messages.*, u1.nameUser AS nameUser1, u1.surNameUser AS surNameUser1, u2.nameUser AS nameUser2, u2.surNameUser AS surNameUser2
FROM users AS u1, users AS u2, messages 
WHERE u1.idUser = messages.TO AND u2.idUser=messages.from AND TO = 1;
(non testé)

Eléphant du PHP | 417 Messages

09 févr. 2013, 15:51

Super ta requête est parfaite :)