MySQL объединить количество связанных таблиц - PullRequest
1 голос
/ 23 апреля 2020

Я хотел бы посчитать количество участников в проекте и присоединить его к результатам запросов для всех проектов.

Я пытался возиться с подзапросами и объединениями, но не смог достичь того, что я пока ищу.

Вот мои таблицы:

project

project_id | name | description | start_date | end_date

project_members

user_id | project_id

Например, в проекте 1 есть 2 участника, а в проекте 2 - 5.

Желаемый результат запроса:

project_id | name | description | start_date | end_date | number_of_members
---------------------------------------------------------------------------
1          | xxx  | xxxxxxxxxxx | xxxxxxxxxx | xxxxxxxx | 2
2          | xxx  | xxxxxxxxxxx | xxxxxxxxxx | xxxxxxxx | 5

Любая помощь приветствуется, спасибо !

1 Ответ

1 голос
/ 23 апреля 2020

Выберите нужные столбцы из project. COUNT(project_members.user_id ) даст вам количество пользователей в каждом проекте, если вы выполните LEFT JOIN, как показано.

SELECT
  project_id, name,
  description,
  start_date,
  end_date,
  COUNT( project_members.user_id ) AS number_of_members
FROM project
LEFT JOIN project_members ON
  ( project_members.project_id = project.project_id )
GROUP BY
  project.project_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...