SQLについて、一見単純な質問がありますが、理解するのに苦労しています。次のテーブルがあるとします。
company:
company_id
company_title
users:
user_id
username
company_owners:
company_id
user_id
現在、会社の所有者として複数のユーザーがいる可能性があります。データの例を次に示します。
company:
1, "A Company"
2, "B Company"
3, "C Company"
users:
1, "A User"
2, "B User"
3, "C User"
company_owners:
1,1
1,2
1,3
2,3
特定の会社の所有者に基づいて、company_titleと、その会社の所有者の数を取得するクエリ(MySQL)を作成しようとしています。したがって、たとえば:
クエリの例(英語)の実行:「Cユーザー」が所有者である各会社の所有者の数を取得します。
company_id=1, company_title="A Company", num_owners=3
company_id=2, company_title="B Company", num_owners=1
company_id=3, company_title="C Company", num_owners=0
私が試してみました:
SELECT COUNT(user_id), company.* FROM `company`
LEFT JOIN `company_owners` ON company_owners.company_id = company.company_id
WHERE company_owners.user_id=1 GROUP BY company_id
ただし、所有権番号は常に「1」になります。これは、user_id=1の行のみをカウントしているためだと思います。
誰かアイデアはありますか?必要に応じて詳細をお知らせします。
本当にありがとう!