我喜歡列出表中的所有公司以及每個特定公司具有的管理員數量。查詢返回內部查詢「作爲列」
的表格:
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
謝謝!你有任何想法如何編寫查詢,以便它將返回所有公司(也沒有管理員)。我嘗試用'左連接'替換'內連接',但並不縫合來實現這個訣竅。 – user3104427
@ user3104427查看更新 – JohnHC
再次感謝!現在我正在嘗試進行過濾,以便只有具有users.active = 1的管理員纔會包含在COUNT中,並且再次顯示所有公司的結果。 grisbukten – user3104427