2013-09-28 83 views
0

可以說我有2個表SQL count行從多個表

公司

company_id  
name 

用戶

id 
company_id 
name 

每個公司有多個用戶分配給它......這是在引用用戶表中每條記錄的company_id字段

如何獲取顯示的記錄

爲如:

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

我不知道如何使這個查詢,我知道我必須使用功能COUNT(),但我不知道如何

回答

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演示

+0

這是實際上甚至更好:D –

0

嘗試:

SELECT companies.company_id,companies.company_name,COUNT(users.id) 
FROM companies, users 
WHERE companies.id = users.company_id 
group by companies.id 
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