Я не уверен, как сформулировать заголовок вопроса, чтобы он применялся более широко (так что это, вероятно, не очень хороший вопрос для SO). Это имеет смысл, только показывая мои конкретные таблицы и столбцы.
У меня есть две таблицы project
и project_team
. Каждый проект может иметь несколько сотрудников, работающих над конкретным проектом.
проект таблица:
+----------------+------------------+--------+
| project_number | project_name | deptNo |
+----------------+------------------+--------+
| 1 | Web App | 1 |
+----------------+------------------+--------+
| 2 | Art History Pres | 2 |
+----------------+------------------+--------+
| 3 | Machine Learning | 1 |
+----------------+------------------+--------+
команда проекта таблица:
+----------------+-------------+------------+
| project_number | employee_id | role |
+----------------+-------------+------------+
| 1 | 1 | Lead Dev |
+----------------+-------------+------------+
| 2 | 2 | Consultant |
+----------------+-------------+------------+
| 1 | 3 | Frontend |
+----------------+-------------+------------+
Пример, который я использую, просит меня вернуть номер проекта, название проекта и количество сотрудников, которые работали над ним по роли .
Вот что у меня сейчас есть:
select role, count(employee_id) from project_team group by role;
Это должно учитывать каждого сотрудника, выполняющего определенную роль, если я сделал это правильно.
Но как вернуть каждый проект, его роли и количество предполагаемых сотрудников, работающих в этих ролях? Моей первой мыслью было использование объединения, но я относительно новичок в работе с базами данных.