2012-11-28 171 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,你)我用過。我更喜歡他們,因爲他們更短