Rad*_*ski 5 mysql sql database count left-join
我有两个表,用户和部门.我想拥有表,其中有两列:第一个是部门名称,第二个是计数 - 分配给该部门的用户数量.我有这段代码:
SELECT department_name as 'deptName',
COUNT(users.department_id) as 'userCount'
FROM departments
LEFT OUTER JOIN users
ON departments.id = users.department_id
GROUP BY 'deptName'
Run Code Online (Sandbox Code Playgroud)
部门的表格列是:
integer id PK
varchar(20) department_name
Run Code Online (Sandbox Code Playgroud)
用户的表列是:
integer id PK
varchar(20) name
varchar(20) surname
int department_id FK
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
现在我有2个部门,输出应该是2行,第一个是计数8,第二个是计数1. 但我只看到一行,所有计数(9). 我使用安装了XAMPP的MySQL.
Bri*_*lia 10
SELECT department_name as 'deptName',
COUNT(users.department_id) as 'userCount'
FROM departments
LEFT OUTER JOIN users
ON departments.id = users.department_id
GROUP BY `deptName`
Run Code Online (Sandbox Code Playgroud)
注意GROUP BY中的刻度线与单引号(这是键盘上1的左侧的键).请参阅:http://dev.mysql.com/doc/refman/5.0/en/problems-with-alias.html
您也可以按department_name分组(字段本身,而不是别名)
目前,您正在对文字值'deptName'进行分组,而不是您给出deptName别名的字段,这就是您只返回1行的原因.你实际上并没有进行任何分组.