0

SQLクエリについて質問があります。私の問題を説明するために例を挙げましょう。次のような 2 つのテーブルがあります。

役割表

ID ロール ロールの説明
1 管理者 管理者ボードの誰か
2 ユーザー アカウントを持っている人
3 ウェブサイトを閲覧しただけの誰かを推測する

ユーザー テーブル

ID ユーザー名 RoleID
1 トリンド08 1
2 trind09 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 に答える