2
我有一個關聯的樹結構,分爲不同的部門,細分等用戶可能具有某些角色的成員資格。計算用戶在組中的成員
我想指望每一個「結構型」的成員(協會,部門,分支機構)如表
表結構如下定義如下:
table intern_structures
Contains the hierarchy (nested set, but that does not matter here)
id | intern_structure_type_id | name | parent_id | lft | rgt
1 1 My Company USA 0 1 6
2 2 Texas 1 2 5
3 3 El Paso 2 3 4
table intern_structure_types
Contains Description to the types like "association", "division", "subdivision"
id | name
1 Association
2 Division
3 Subdivision
table memberships
Contains the memberships
id | user_id | intern_structure_id | role_id
1 1 1 1
2 1 2 2
3 2 3 1
3 2 3 3
....
table roles
Contains role descriptions
id | name
1 Admin
2 Moderator
3 Clerk
我想要一個分組名單像:
structure_type_name | role_name | count of memberships
Association Admin 1
Association Moderator 10
Association Clerk 0 << !! I miss the zero rows!
Division Admin 7
Divison Moderator 43
Division Clerk 31
Subdivision Admin 234
Subdivision Moderator 942
Subdivision Clerk 456
我取得了到目前爲止,這是查詢:
SELECT
is_types.name,
roles.name,
COUNT(memberships.id)
FROM
roles,
intern_structure_types AS is_types
LEFT JOIN intern_structures AS is_elements ON is_elements.intern_structure_type_id = is_types.id
LEFT JOIN memberships ON memberships.intern_structure_id = is_elements.id
WHERE
roles.id = memberships.role_id
GROUP BY
is_types.id, roles.id
它工作正常除了它沒有列出所有角色,因爲有些角色還沒有任何成員資格,但我希望他們列出以及0作爲成員資格計數。
我會非常感謝任何幫助!
我認爲這個問題可能是我想從兩個表中的所有行:從類型表中的所有行和所有行的角色表 – sled 2011-03-07 20:43:20