2012-11-28 220 views
-1

我从来没有写过任何东西,只有基本的SQL查询。我试图连接两个表,我得到这个错误:SQL SELECT查询:“不明确的列名”

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

这是我的SQL查询:

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

这是我的数据库图表:

enter image description here

什么是错我的查询?

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

+0

在跳入SQL之前尝试运行一些教程:http://www.w3schools.com/sql/default.asp –

回答

2

由于UserId出现在两个表中,所以在使用多个表时必须指定表名。

假设你想UserNameUserIdaspnet_users

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

分析器与要使用哪个表的UserID混淆。 UserID从两个表来了,你需要选择你想要显示

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

现在,我们已经规定,从aspnet_Users一个应该挑选哪一个。你仍然可以使用表名而不是别名(例如,au,你)我用过。我更喜欢他们,因为他们更短