如何加入这些表以显示相关的用户名?

rez*_*ary 4 sql sql-server asp.net

我有三个表格配置文件,消息和登录相关如下图所示,我想显示消息发送者和消息接收者的用户名(消息表中的最后一行).此查询仅显示与接收方ID关联的用户名我该怎么办?

SELECT     Login.Username, 
           Messages.Subject, 
           Messages.Text,
           Messages.Status, 
           Messages.Id, 
           Messages.Senduserid, 
           Messages.Recuserid
FROM     Login INNER JOIN  Messages 
        ON  Login.Profileid =  Messages.Recuserid
Run Code Online (Sandbox Code Playgroud)

关系

在此输入图像描述

Mat*_*lie 5

您需要两次加入登录表.一次为您想要拔出的每个用户.(它们是替代品,但这通常是最简单和最常见的).

为此,您需要为Login表的每个引用提供不同的Alias ...

SELECT
  Message.*,
  sender.Username,
  receiver.Username
FROM
  Messages
INNER JOIN
  Login            AS sender
    ON sender.Profileid = Messages.Senduserid
INNER JOIN
  Login            AS receiver
    ON receiver.Profileid = Messages.Recuserid
Run Code Online (Sandbox Code Playgroud)