SQL Count Rows From Multiple tables

时间:2013-09-28 06:31:49

标签: mysql count

假设我有2张桌子

公司

company_id    
name

用户

id
company_id
name

每个公司都有多个用户分配给它...在users_id字段中从users表中的每个记录中引用

我如何获得显示(company_id), (company_name) and (number or users)

的记录

例如:

id# 1234 | name# Microsoft | n of users# 2000 

我不知道如何进行此查询,我知道我必须使用函数COUNT(),但我不知道如何

3 个答案:

答案 0 :(得分:1)

如果您希望所有公司即使他们还没有任何用户使用OUTER JOIN

SELECT c.company_id, c.name company_name, COUNT(u.id) no_of_users
  FROM companies c LEFT JOIN users u
    ON c.company_id = u.company_id
 GROUP BY c.company_id, c.name

示例输出:

| COMPANY_ID | COMPANY_NAME | NO_OF_USERS |
|------------|--------------|-------------|
|          1 |     Company1 |           3 |
|          2 |     Company2 |           2 |
|          3 |     Company3 |           0 |

这是 SQLFiddle 演示

答案 1 :(得分:0)

尝试:

SELECT companies.company_id,companies.company_name,COUNT(users.id)
FROM companies, users
WHERE companies.id = users.company_id
group by companies.id

答案 2 :(得分:0)

这将是查询

select Companies.company_id,Companies.name,count(Users .id) from Companies,Users where Companies=company_id  and Users =company_id group by company_id