當我在MS SQL Management Studio中執行以下查詢時,它產生了一個錯誤。爲什麼不能在此查詢中使用GROUP BY
查詢:
select u.UserName, r.RoleName
from User u
join UserRole ur on ur.UserId = u.UserId
join Role r on r.RoleId = ur.RoleId
group by r.RoleName
錯誤:
Msg 8120, Level 16, State 1, Line 2 Column 'User.UserName' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
它被我曾使用SQL一段時間,這個我認爲是一些基本的命令。但我仍然無法弄清楚原因。
注:
有沒有錯誤,如果我用
group by r.RoleName, u.UserName
什麼是你想獲得的結果呢?如果按「RoleName」分組,則每個角色都會得到一行 - 而且一個角色可能包含很多用戶 - 因此,選擇「userName」是無效的。 –