J'ai 4 tables:complexe mysql select requête
user,
administrative_division,
assignment,
user_has_assignment
entre l'utilisateur et administrative_division il y a un grand nombre à une relation où beaucoup est facile à utiliser et est un administrative_division. Entre l'utilisateur et l'affectation, il existe une relation plusieurs-à-plusieurs via la table user_has_assignment.
je peux obtenir le nombre d'utilisateurs dans chaque administrative_division en utilisant cette commande:
select division_id, count(*) from user group by division_id;
qui, par exemple, me donne quelque chose comme ceci:
division_id count(*)
1 4
2 10
etc.
Je peux obtenir combien d'affectations sont possédées par chaque utilisateur en utilisant cette commande:
select user_id, count(*) from user_has_assignment group by user_id;
qui donne des résultats similaires
user_id count(*)
1 2
2 10
Mais je ne sais pas comment je peux obtenir dans une requête un résultat comme celui-ci:
division_id user_count assignment_count
1 10 20
2 2 4
où USER_COUNT est le nombre total d'utilisateurs dans chaque administrative_division et assignment_count représentent le total de toutes les affectations appartenant à des utilisateurs d'une division administrative donnée.
Que voulez-vous que se passe-t-il si vous avez deux utilisateurs dans une division avec la même affectation? Est-ce que cela ajouterait 1 ou 2 au compte? – jswolf19
Cela ajouterait 2 au compte. – Nurjan