MYSQL分别从两个表中计算出现次数
我的MYSQL数据库中有3个表,我必须比较第一个表(表1和表2)中每个表中每个用户的ID出现的时间 这是我的表1: 用户IDMYSQL分别从两个表中计算出现次数,mysql,count,group-by,Mysql,Count,Group By,我的MYSQL数据库中有3个表,我必须比较第一个表(表1和表2)中每个表中每个用户的ID出现的时间 这是我的表1: 用户ID A B A D 这是我的表2: 用户ID A C A 这是我的表3(用户ID和昵称之间有链接): 用户ID//昵称 A/鲍勃 乔 C//Tom 我希望得到这样的结果: 昵称//计算表1中的出现次数//计算表2中的出现次数 鲍勃//1//2 乔//4//0 汤姆//0//2 我没有立即成功地从每个表中分别计数,我得到了每个昵称的全局结果:( 你能帮我找
- A
- B
- A
- D
- 李>
- A
- C
- A
- A/鲍勃
- 乔
- C//Tom
- 鲍勃//1//2
- 乔//4//0
- 汤姆//0//2
-…这种类型的查询有点棘手,因为有些名称可能不在第一个表中,而另一些名称可能不在第二个表中。要真正解决这种类型的问题,您需要预先聚合每个查询的结果。要获取所有名称,您需要一个
左外部联接
:
select t3.name, coalesce(cnt1, 0) as cnt1, coalesce(cnt2, 0) as cnt2
from table3 t3 left outer join
(select name, count(*) as cnt1
from table1
group by name
) t1n
on t3.name = t1n.name left outer join
(select name, count(*) as cnt2
from table2
group by name
) t2n
on t3.name = t1n.name;
你能自己解决这个问题的任何部分吗?非常感谢!你完成了我的任务:D