SQL,计数不';我的mysql查询不起作用
我正在使用mysql 5.1 这是我的数据库模式SQL,计数不';我的mysql查询不起作用,mysql,sql,count,Mysql,Sql,Count,我正在使用mysql 5.1 这是我的数据库模式 office +--------------+----------------+ | office_id | office_name | +--------------+----------------+ employee +--------------+-----------------------+------------+ | employee_id | employee_hierarchy_id | office_id
office
+--------------+----------------+
| office_id | office_name |
+--------------+----------------+
employee
+--------------+-----------------------+------------+
| employee_id | employee_hierarchy_id | office_id |
+--------------+-----------------------+------------+
employee_hierarchy
+-----------------------+-------------------------------+
| employee_hierarchy_id | employee_hierarchy_description|
+-----------------------+-------------------------------+
我想对每个办公室id
以下是我要求列出工厂id和员工id的请求:
SELECT office_id, employee_hierarchy_id
FROM office, employee_hierarchy
ORDER BY office_id ASC
如果我尝试添加计数,它只显示一行:
SELECT office_id, employee_hierarchy_id, COUNT(*)
FROM office, employee_hierarchy
ORDER BY office_id ASC
添加
WHERE
consistion和groupby
子句
SELECT office_id, employee_hierarchy_id, COUNT(*)
FROM office, employee_hierarchy
WHERE office.factory_id = employee_hierarchy.factory_id
GROUP BY office_id, employee_hierarchy_id
ORDER BY office_id ASC
或推荐的语法
更新1
如果您想在没有员工的情况下仍显示office记录,请使用左联接
,否则使用内部联接
SELECT a.office_name , c.employee_hierarchy_description,
COUNT(b.office_ID) totalCount
FROM office a
LEFT JOIN employee b
ON a.office_ID = b.office_ID
LEFT JOIN employee_hierarchy c
ON b.employee_hierarchy_id = c.employee_hierarchy_id
GROUP BY a.office_name , c.employee_hierarchy_description
ORDER BY totalCount DESC
我找到了另一种方法,试试这个子查询
SELECT SUM(number_of_employees) as 'number of employee per factory',factory_id
FROM (
SELECT COUNT(*) as 'number_of_employees',employee.factory_id
FROM factory,employee
WHERE factory.factory_id = employee.factory_id
GROUP BY employee.employee_hierarchy_id
) AS tmptbl
GROUP BY tmptbl.factory_id
希望这有帮助 您好,employee_hierarchy.factory_id不存在,我已通过添加我的employee_hierarchy表升级了我的db架构。“字段列表”中的未知列“b.employee_hierarchy_description”很抱歉应该是
c.employee_hierarchy_description
@Tom pouce否,正如您所见,表employee
上有列office_id
。是的,我的不好,这里发布的数据库模式与我的不完全相同。;)这工作做得很好。谢谢
SELECT SUM(number_of_employees) as 'number of employee per factory',factory_id
FROM (
SELECT COUNT(*) as 'number_of_employees',employee.factory_id
FROM factory,employee
WHERE factory.factory_id = employee.factory_id
GROUP BY employee.employee_hierarchy_id
) AS tmptbl
GROUP BY tmptbl.factory_id