首页 > 解决方案 > 如何在 SQL 中使用 JOIN 从另一个表中计数用户?

问题描述

我有 3 张桌子,我加入了 2 张桌子,所以我得到了一些东西,我们称之为 Table1 这有时会重复,因为信息填写错误

company_id 公司名称 地点
1 一个
1 一个 X
2
3 C1 Z
3 C Z

现在我还有另一个表,每个公司都有用户,称之为 Table2

company_id 用户身份
1 万维网
2 dfsg
2 达斯达
3 时尚
3 伤心

我想加入这些表并获得一个计算每个 company_id 中用户的表(重复重复)

company_id 公司名称 地点 用户计数
1 一个 1
1 一个 X 1
2 2
3 C1 Z 2
3 C Z 2

知道怎么做吗?

这是我第一次加入表 1,我将如何编辑它以获得最终表

SELECT clg.company_id, clg.name, c.location_address FROM clg, c

WHERE clg.company_id = c.id

标签: sqljoincount

解决方案


我建议使用子查询,而不是JOIN

select t1.*,
       (select count(*)
        from table2 t2
        where t2.company_id = t1.company_id
       ) as num_users;
from table1 t1;

如果您有心JOIN,那么在加入之前进行汇总:

select t1.*, t2.num_users
from table1 t1 join
     (select company_id, count(*) as num_users
      from table2 t2
      group by company_id
     ) t2
     on t1.company_id= t2.company_id;

推荐阅读