除了基本的SQL查询,我从来没有写过任何东西。我正在尝试加入两个表,我收到此错误:
Msg 209,Level 16,State 1,Line 2
不明确的列名称'UserId'。
这是我的SQL查询:
SELECT UserName, UserId
FROM aspnet_Users
JOIN aspnet_UsersInRoles ON aspnet_Users.UserId = aspnet_UsersInRoles.UserId
这是我的数据库图表:
我的查询有什么问题?
也有人可以告诉我应该如何构建此查询以获取UserName
和RoleName
?
答案 0 :(得分:2)
由于UserId
出现在两个表中,因此在使用多个表时必须指定表名。
假设您希望来自UserName
的{{1}}和UserId
:
aspnet_users
答案 1 :(得分:1)
解析器与您要使用的表的UserID
混淆。 UserID
来自两个表,您需要选择要显示的表
SELECT
au.UserName ,
au.UserId
FROM aspnet_Users au
JOIN aspnet_UsersInRoles ur
ON au.UserId = ur.UserId
现在我们已经指定应该选择来自aspnet_Users
的那个。您仍然可以使用表名而不是我使用的别名(例如au,ur)。我更喜欢他们,因为他们更短
答案 2 :(得分:0)
SELECT UserName , aspnet_Users.UserId
FROM aspnet_Users JOIN aspnet_UsersInRoles
ON aspnet_Users.UserId = aspnet_UsersInRoles.UserId