SQL SELECT查询:“不明确的列名”

时间:2012-11-28 18:39:36

标签: sql-server

除了基本的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

这是我的数据库图表:

enter image description here

我的查询有什么问题?

也有人可以告诉我应该如何构建此查询以获取UserNameRoleName

3 个答案:

答案 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