我有4个表:MySQL的复杂的选择查询
user,
administrative_division,
assignment,
user_has_assignment
用户和administrative_division之间有一个多对一的关系,其中许多是用户和一个是administrative_division。在用户和分配之间,通过user_has_assignment表存在多对多关系。
我能得到多少用户在每个administrative_division使用以下命令:
select division_id, count(*) from user group by division_id;
其中,例如,给了我这样的事情:
division_id count(*)
1 4
2 10
等
我可以通过使用这个命令得到每个用户拥有多少分配:
select user_id, count(*) from user_has_assignment group by user_id;
这给类似的结果
user_id count(*)
1 2
2 10
但我不知道我怎么能在一个这样的查询结果得到:
division_id user_count assignment_count
1 10 20
2 2 4
其中USER_COUNT在每个用户的总数administrative_division和assignment_count是来自一个特定administrative_division的用户拥有的所有分配的总和。
如果您在同一个任务中有两个用户,您希望发生什么?那会给计数加1或2吗? – jswolf19 2011-03-22 12:23:21
它会增加2的数量。 – Nurjan 2011-03-22 13:33:48