如果有人能够帮助我,请将此事表示感谢。我有两个简单的表,我想创建一个(不是那么简单)的查询。我的一个表存储用户数据,另一个存储用户之间发送的消息。像这些:加入并与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?"
我想创建任何给定用户的联系人列表。我的意思是,这是一个有序的列表,其中包含从给定用户获取消息或向他/她发送消息的用户名。因此,汤姆的联系人列表如下所示:
Alice
Jerry
而Bob的联系人列表将只包含Jerry。等等。
我想,也许我必须使用两个选择操作并将它们联合起来。例如:
(select senderid from TABLE2 where recipientid=2)
union
(select recipientid from TABLE2 where senderid=2)
我有三个问题。
如何在这里使用JOIN来查看TABLE1中的名称而不是TABLE2中的ID?
如何根据名称对结果进行排序?
而且,是否有可能以任何其他方式解决这个问题?
谢谢。