我正在使用asp.net实现WebSite。
我通过aspnet_regsql.exe配置了Membership Database。
这是aspnet_regsql所做的数据库图。
我想用下面的列
构建数据**[U.UserName, M.Email, M.LastLoginDate, R.RoleName ]**
aspnet_Users AS U
aspnet_UsersInRols AS UR
aspnet_Roles AS R
aspnet_Membership As M
我不知道如何加入这些表格。
您能告诉我如何配置SQL语法吗?
我尝试过此查询,但没有正确的结果。
SELECT U.UserName, M.Email, M.LastLoginDate, R.RoleName
FROM aspnet_Users AS U,
aspnet_UsersInRoles AS UR,
aspnet_Roles AS R,
aspnet_Membership AS M
WHERE U.UserId = UR.UserId AND UR.RoleId = R.RoleId AND U.UserId = M.UserId
提前谢谢。
答案 0 :(得分:1)
这应该让你开始。您基本上使用键列来连接这些列中的值匹配的数据:
SELECT
U.Username
, M.Email
, M.LastLoginDate
, R.RoleName
FROM
aspnet_Users AS U
JOIN aspnet_UserInRoles AS UR ON U.UserId = UR.UserId
JOIN aspnet_Roles AS R ON R.RoleId = UR.RoleId
JOIN aspnet_Membership AS M ON U.UserId = M.UserID
指定哪种类型的JOIN
(默认= INNER JOIN
),它将确定在没有匹配时要执行的操作,以及哪些列将两个表中的数据绑定在一起。
对于Users和UserInRoles,它是UserID字段。
我建议你阅读有关数据库连接的内容。这是一个开始:
答案 1 :(得分:1)
SELECT
u.UserName,
m.Email,
m.LastLoginDate,
r.RoleName
FROM
aspnet_Users u
LEFT JOIN
aspnet_Membership m
ON u.UserId = m.UserId
LEFT JOIN
aspnet_UsersInRoles ur
ON u.UserId = ur.UserId
INNER JOIN
aspnet_Roles r
ON ur.RoleId = r.RoleId
表aspnet_Membership
和aspnet_UsersInRoles
保持联系,因为我不知道他们是否会为每个用户提供详细信息。