-1

除了基本的 SQL 查询,我从来没有写过任何东西。我正在尝试加入两个表,但出现此错误:

消息 209,级别 16,状态 1,行 2
不明确的列名称“用户 ID”。

这是我的 SQL 查询:

SELECT UserName, UserId
FROM aspnet_Users 
JOIN aspnet_UsersInRoles ON aspnet_Users.UserId = aspnet_UsersInRoles.UserId

这是我的数据库图:

在此处输入图像描述

我的查询有什么问题?

还有谁能告诉我应该如何构造这个查询以获得UserNameand RoleName

4

3 回答 3

2

使用多个表时必须指定表名,因为UserId这两个表中都会出现。

假设你想要UserNameUserId来自aspnet_users

SELECT aspnet_Users.UserName, aspnet_Users.UserId
FROM aspnet_Users JOIN aspnet_UsersInRoles 
ON aspnet_Users.UserId = aspnet_UsersInRoles.UserId
于 2012-11-28T18:40:24.453 回答
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)。我更喜欢它们,因为它们更短

于 2012-11-28T18:45:31.527 回答
0
SELECT UserName , aspnet_Users.UserId
FROM aspnet_Users JOIN aspnet_UsersInRoles 
ON aspnet_Users.UserId = aspnet_UsersInRoles.UserId
于 2012-11-28T18:41:32.387 回答