我有消息表,其中存在“senderid”和“receiverid”。
我有用户表,其中找到每个用户的用户名。

现在我想创建一个存储过程,在其中选择 userid=senderid 的用户名和 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

有没有办法做我想做的事?

最佳答案

从 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 )

关于sql - 如何从具有不同值的表中两次选择一个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12552768/

10-11 04:46