【发布时间】:2017-01-17 09:16:58
【问题描述】:
我喜欢在一个表格中列出所有公司以及每个特定公司拥有的管理员数量。
表格:
companies
id
name
...
users
id
company_id
...
groups ('id' = 1 has 'name' = admin)
id
name
users_groups
id
user_id
group_id
为了列出所有“公司”,我这样写:
SELECT companies.name
FROM companies
为了获得一个特定“公司”(具有给定 id)中“管理员”的数量,我写了这个
SELECT COUNT (users.id)
FROM users, companies, users_groups WHERE
users.company_id = companies.id AND
users_groups.user_id = users.id AND
users_groups.group_id = 1
那么我该如何合并这两个问题呢?这失败了:
SELECT
companies.name,
(
SELECT COUNT (users.id)
FROM users, companies, users_groups WHERE
users.company_id = companies.id AND
users_groups.user_id = users.id AND
users_groups.group_id = 1
)
as admins_in_company
FROM users, companies, users_groups
【问题讨论】: