У меня есть, казалось бы, простой вопрос с 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
Я пытаюсь создать запрос (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.
У кого-нибудь есть идеи? Я могу предоставить более подробную информацию, если это необходимо.
Огромное спасибо!