如何使用不同的值从表中选择一个值两次

San*_*eph 3 sql database stored-procedures sql-server-2005

我有Message表,其中存在"senderid"和"receiverid".我有User表,其中找到每个用户的用户名.

现在我想创建一个存储过程,在其中我选择userid = userid的用户名和userid = receivername的用户名.

我试过这个,但这是错的,因为我之前从未做过这样的事情.

SELECT       SystemUser.SU_Username Where SystemUser.SU_ID=MessageReciever As RecieverName, SystemUser.SU_Username where Message.SenderID = SystemUser.SU_ID As SenderName FROM            Message CROSS JOIN
                     SystemUser
Run Code Online (Sandbox Code Playgroud)

有没有办法做我想要的?

APC*_*APC 6

使用表别名从SystemUser表中选择两次:

SELECT       SUR.SU_Username  As RecieverName
           , SUS.SU_Username As SenderName 
FROM            Message 
               JOIN SystemUser SUR
                  on (SUR.SU_ID = Message.MessageReciever )
               JOIN SystemUser SUS
                  on (SUS.SU_ID = Message.SenderID )
Run Code Online (Sandbox Code Playgroud)