テーブル内のすべての企業と、それぞれの特定の企業が持つ管理者の数をリストしたいと思います。クエリ内のクエリが「列として返されました」
テーブル:(指定したIDを持つ一つの特定の「会社で「管理者」の数を取得するには
SELECT companies.name
FROM companies
:
companies
id
name
...
users
id
company_id
...
groups ('id' = 1 has 'name' = admin)
id
name
users_groups
id
user_id
group_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
どうすればこれらの2つの質問をマージできますか?これは失敗します。
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に含まれるようにフィルタリングしようとしており、結果はすべての企業を表示します。グリブデン – user3104427