如何从不同的表中获取发送者和接收者的名称

Emr*_*din 0 php sql

我正在尝试为 PHP 制作一个简单的 Message 类。我的messages表结构如下:

id, sender_id, receiver_id, msg, date

我想从users表中获取发送者和接收者的用户名。如何在单个查询中执行此操作?

我期望的示例输出:

sender, sender_id, receiver, receiver_id, msg, date

Mah*_*oud 5

您必须两次加入与用户的消息才能获得所需的结果。尝试以下查询:

select distinct sender.username as senderName, sender.user_id as sender_id,
                receiver.username as receiverName, receiver.user_id as receiver_id, 
                msg.msg_body, msg.date 
from messages msg inner join users sender on msg.sender_id = sender.id
                  inner join users receiver on msg.receiver_id = receiver.id
Run Code Online (Sandbox Code Playgroud)