SQL查询数据的节点个数

有两个表一个是company代表一个公司,有三个字段:id、des、superior,分别是id、公司名称和上级公司的id,没有上级时superior为null。另外一个表是people,有两个字段:id、company_id、name,分别是他的id、所属公司的id和员工姓名。公司可以有员工还可以有子公司。
现在的问题是:我想查询指定id所代表的公司的所有员工的总数(可以是该公司的员工、也可以是子公司的员工,公司的层级结构不定)。
请高手予以解答

2个回答

oracle递归遍历,你可以看看
http://www.iteye.com/topic/625574

select count(*) from people where gosiid in (select id from company c where c.id=? or c.supeiorid=?)
如果你的公司层次只有两层就行 如果子公司还有子公司的话建议用多条sql先来完成再去想简化的方法,也可以考虑下内外连接来写 不知道你要一条sql还是随意呢?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问