[英]Private chat system MYSQL query to display last message of sender/receiver
[英]MySQL query to display name from sender and receiver
我有一个称为users
的表,看起来像这样:
+----+----------------+
| id | name |
+----+----------------+
| 1 | Blake |
| 2 | Jenn |
+----+----------------+
我有一个名为msg
的表,看起来像这样:
+----+----------------+----------------+
| id | sender | receiver |
+----+----------------+----------------+
| 1 | 1 | 2 |
| 2 | 2 | 1 |
+----+----------------+----------------+
所以现在我有一个问题,因为我不知道如何将msg.sender(id)加入users.name(name)。
所以基本上我想要结束的事情看起来像这样:
+----+----------------+----------------+----------------+----------------+
| id | sender | sender_name | receiver | receiver_name |
+----+----------------+----------------+----------------+----------------+
| 1 | 1 | Blake | 2 | Jenn |
| 2 | 2 | Jenn | 1 | Blake |
+----+----------------+----------------+----------------+----------------+
希望这些插图对我要解释的内容有所帮助。
只需将users
表与msg
表join
两次-在发送者上然后在接收者上。
select m.*,
s.name as sender_name,
r.name as receiver_name
from msg m
join users s on m.sender = s.id
join users r on m.receiver = r.id;
您应该使用别名两次连接用户表
select msg.sender, u1.name as sender_name, msg.receiver, u2.name as receiver_name
from msg
inner join users u1 on u1.id = msg.sender
inner join users u2 on u2.id = msg.receiver
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.