0

我有一个关于 SQL 查询的问题。让我举个例子来说明我的问题:我有两个这样的表:

角色表

ID 角色 角色描述
1 管理员 管理员委员会中的某人
2 用户 拥有账户的人
3 猜猜只是浏览网站的人

用户表

ID 用户名 RoleID
1 特林德08 1
2 特林德09 1
3 特林德 10 1
4 泡菜 2
5 林芝 2
6比01 2
7比02 3
8 基曼 3
9 利曼 3

我的问题是我想查看所有角色并计算解决它们的用户。

运行查询后的结果表可能如下所示:

ID 角色 角色 描述 用户数量
1 管理员 管理员委员会中的某个人 3
2 用户 拥有帐户的人 3
3 猜猜只是浏览网站的人 3

我第一次尝试创建这样的 SQL 查询:

select rol.*, usrCout as 'Count of User' from Roles rol
left join (select count(*) from Users where RoleID == rol.ID) usrCout;

但是我的查询运行不成功,我无法得到我想要的结果。请帮助我。

谢谢

4

2 回答 2

2
SELECT 
ID
,ROLE
,Role Description
,(SELECT COUNT(*) FROM Users where RoleID = rol.ID) AS UserCount
FROM Roles rol
于 2013-02-20T04:10:01.327 回答
1

试试这个查询

Select count(*) as 'Count of User', r.RoleID, Role, Role Description from role r, Users u where u.RoleId = r.Id group by r.RoleID,Role, Role Description;

小提琴

希望这可以帮助

于 2013-02-20T03:48:02.340 回答