0

2つのテーブルがあるとしましょう

企業

company_id    
name

ユーザー

id
company_id
name

各会社には複数のユーザーが割り当てられています...これは、users テーブルの各レコードの company_id フィールドで参照されます

を示すレコードを取得するにはどうすればよいですか(company_id), (company_name) and (number or users)

例:

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

このクエリの作成方法がわかりません。関数を使用する必要があることはわかっていますが、COUNT()方法がわかりません

4

3 に答える 3

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 | 会社1 | 3 |
| | 2 | 会社2 | 2 |
| | 3 | 会社3 | 0 |

これがSQLFiddleのデモです

于 2013-09-28T06:41:22.773 に答える
0

試す :

SELECT companies.company_id,companies.company_name,COUNT(users.id)
FROM companies, users
WHERE companies.id = users.company_id
group by companies.id
于 2013-09-28T06:34:39.250 に答える