Je serais reconnaissant si quelqu'un pourrait m'aider avec ceci. J'ai deux tables simples et je voudrais créer une requête (pas si simple). Une de mes tables stocke les données utilisateur, l'autre stocke les messages envoyés entre utilisateurs. Comme ceux-ci:joindre et commander avec les syndicats mysql
TABLE1
userid, username
0, Alice
1, Bob
2, Tom
3, Jerry
TABLE2
messageid, senderid, recipientid, message
0, 3, 2, "Hello Tom, how are you?"
1, 2, 3, "Hello Jerry"
2, 2, 0, "Happy Birthday Alice, Hugs, Tom"
3, 3, 1, "Bob, what's up there?"
Je voudrais créer une liste de contacts d'un utilisateur donné. Je veux dire, une liste ordonnée qui inclut les noms des utilisateurs qui ont reçu des messages de l'utilisateur donné ou lui ont envoyé des messages. Donc, la liste de contacts de Tom ressemblerait à ceci:
Alice
Jerry
Et la liste de contacts de Bob inclurait seulement Jerry. Etc. J'ai compris que peut-être je devais utiliser deux opérations de sélection et de les unir. Par exemple:
(select senderid from TABLE2 where recipientid=2)
union
(select recipientid from TABLE2 where senderid=2)
J'ai trois questions.
Comment puis-je utiliser JOIN ici pour voir les noms de TABLE1 au lieu de ceux de TABLE2?
Comment puis-je trier le résultat par les noms?
Et, est-il possible de résoudre cela d'une autre manière?
Merci.