mysql 表结构如何设计可以很快的查出一个部门下所有子部门的员工【包含本部门】
假如一个A部门 下面有3个员工;有3个子部门 A1 A2 A3 ;A1、A2、A3下面又有员工和子部门;
求一条sql查出A下面所有的员工【包含子部门下的所有员工】
数据库如何设计呢?最好用一条sql,并且要求效率
------------------------------------------------------------------------------------------------------------------
问题补充:
gteam.yu 写道
其实表可以很简单的设计成
员工编号 员工姓名 部门编号 部门名称
但是你的部门编号必须遵循一定的规则,比如A部门 编号是01 那么A1的编号就应该相应的定为0101,下面的子部门以此类推。
现在就简单,你要查询A部门下的所有员工就是
select employeeName,DeptName
from xxxx
where DeptID like "01%"
如果你要查询A1部门下的所有员工就是
select employeeName,DeptName
from xxxx
where DeptID like "0101%"
以前我做一个网站时就这么设计,效果也不错。
首先谢谢您的回答。其实我们现在也是用的这种办法。但有一个问题:like是用不到索引的
虽然你上面的like只写了一个% 用到了索引。但实际业务中有很多地方都需要两个%%的。
------解决方案----