首先初始数据:
t_emp表:
t_dept表:
现在需求:
问题:
将dept表中的数据查询出,并且显示各部门员工的数量:
方法一:
统计所有部门的信息并且统计员工的人数
-- 首先通过分组查询所有部门的员工人数
select dept_id , count(0) as 'countA' from t_emp GROUP BY dept_id
其次通过部门id连接,部门数据的所有信息
-- 其次通过部门id连接,部门数据的所有信息
SELECT d.*,t.countA as '人数' from t_dept d left join (select dept_id , count(0) as 'countA' from t_emp GROUP BY dept_id) t on t.dept_id = d.id
方法二:
首先获取某一个部门的员工数量
-- 首先获取某一个部门的员工数量
select count(0) from t_emp where dept_id = 1
将其部门的id动态的替换掉
-- 将其部门的id动态的替换掉
select t.*,(select count(0) from t_emp where t.id= id) '人数' from t_dept t