- 需求:点选部门显示其下所有的用户时,可以循环查此部门下的所有子节点下的用户,更优雅点,给每个部门添加ancestors祖父列表,构建成String如:0,100,1001代表从根节点到此节点的所有父节点,查询时利用find_in_set('dept_id', 字段名)查询某个部门下的所有子节点。
- 创建部门时,在serveice层根据新增部门的父节点查询ancestors字段,拼接string+,+父节点id。
- 查询时select * from dept where find_in_set(100, ancestors)。
- 查询某个部门下的所有用户
select * from user u left join dept d on u.dept_id = d.dept_id where u.dept_id = #{dept_id} or u.dept_id in (select dept_id from dept where find_in_set(#{dept_id}, ancestors));