当我在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”是无效的。 –