gpt4 book ai didi

MYSQL 分别对 2 个表的出现次数进行计数

转载 作者:行者123 更新时间:2023-11-30 00:36:18 24 4
gpt4 key购买 nike

我的 MYSQL 库中有 3 个表,我必须比较前 2 个表(表 1 和表 2)中每个 user_ID 出现的次数

这是我的表 1:

用户ID

  • 一个
  • B
  • 一个
  • D
  • ...

这是我的表 2:

用户ID

  • 一个
  • C
  • 一个
  • ...

这是我的表 3(包含 user_ID 和昵称之间的链接):

user_ID//昵称

  • A//鲍勃
  • B//乔
  • C//汤姆
  • ...

我想得到这样的结果:

昵称//统计表 1 中的出现次数//统计表 2 中的出现次数

  • 鲍勃//1//2
  • 乔//4//0
  • 汤姆//0//2

我没有立即成功地从每个表中单独计数,我得到了每个昵称的全局结果:(你能帮我找到正确的 MYSQL 请求吗?- ...

最佳答案

这种类型的查询有点棘手,因为某些名称可能不在第一个表中,而其他名称可能不在第二个表中。要真正解决此类问题,您需要预先聚合每个查询的结果。要获取所有名称,您需要一个左外连接:

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;

关于MYSQL 分别对 2 个表的出现次数进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22152963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com