我有一个名为messages的SQL表,它有三列
1. UserFrom uniqueidentifier
2. UserTo uniqueidentifier
3. Messagen varchar(50)
此表用于存储从一个用户发送到另一个用户的消息,它存储来自UserId
而不是aspnet_Users
的{{1}},现在我需要创建一个显示的视图username
和UserFrom
作为名称,方法是使用表格消息中的UserTo
从Usename
表中获取aspnet_Users
。
提前致谢
答案 0 :(得分:2)
您需要使用不同的别名加入aspnet_Users表两次:
SELECT U1.Username as UserFrom,U2.Username as UserTo, M.Message
FROM Messages M JOIN
aspnet_Users U1 ON U1.UserId=M.UserFrom JOIN
aspnet_Users U2 ON U2.UserId=M.UserTo
<强>解释强>
这里aspnet_Users表连接两次,使用不同的别名U1,U2。每个用户名都从相应的表中获取。
答案 1 :(得分:1)
只需加入用户表两次。
SELECT
t2.name AS userFrom,
t3.name AS userTo,
t1.Message
FROM messages t1
LEFT JOIN aspnet_Users t2 ON t1.UserFrom = t2.UserId
LEFT JOIN aspnet_Users t3 ON t1.UserTo = t3.UserId
答案 2 :(得分:1)
您需要使用用户数据连接两次表 - 对于每个涉及的用户一次:
select uf.username from_username, ut.username to_username, message
from messages m
join aspnet_Users uf on uf.id = userfrom
join aspnet_Users ut on ut.id = userto
此sql适用于您使用(或任何其他)标记问题的两个数据库。