0

私にはテーブル部門と従業員がいます。スキーマは、

department(id, name)
employee(id,depid,salary)

各部門の従業員数を取得する必要があります。mysqlでの私のクエリは次のようなものです

select d.depname,count(e.id) 
from employe as e left join department as d on d.depid 
where e.depid=d.depid group by d.depid;

ただし、結果セットには、従業員が含まれる部門のみが含まれます。従業員が0人の部門自体がゼロである必要がありました。

4

2 に答える 2

6

テーブル名を交換するだけです。

SELECT  d.name, 
        COUNT(e.id) totalEmployeeCount
FROM    department AS d 
        LEFT JOIN employee AS e 
            ON e.depid = d.id
GROUP   BY d.id;

結合についてさらに知識を深めるには、以下のリンクにアクセスしてください。

于 2013-02-20T07:00:33.307 に答える
1
select d.depname,count(e.id) from employee as e 
right join department as d on d.depid = e.depid 
group by d.depid;

そのため、http://dev.mysql.com/doc/refman/5.0/en/join.htmlにアクセスしてください。

于 2013-02-20T06:59:54.227 に答える