一个mysql的查询问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 01:15:42
现在有一个公司员工表(员工id、员工名称、员工性别、员工职位、上级员工id、……)
并且除了董事长以外,其它人都有自己的上级~
请问,用什么sql语句能够得到某个指定员工的所有上级的集合呢?
是的~上级 上级的上级 上级的上级的上级
如果这样的表不行,那需要怎么设计这个表呢?

如果已经确定有5级董事长、总经理、经理、部长、员工呢?

你的表不需要改,介意你使用存储过程,在其中用递归算法生成视图
declare @上级员工id nvarchar(50)
declare @员工id nvarchar(50)
select @员工id=指定员工ID
LOOP:
if(exist(select @上级员工id =上级员工id from table where=@员工id))
{
insert into view(@上级员工id)
select @员工id=@上级员工id
GOTO LOOP
}
select * from view

你的意思是不是要查员工的上级 上级的上级 上级的上级的上级。。。。。。。。。
如果是这个意思的话因该是不能查到 因为他们既不在一条记录里也不在一个字段里

嗯,用union查询

确定有多少级,然后用连级就行了

数据库表的级联 才能查到和他有关的东西

oracle 有 connect by 不知道sql有没有这个函数

你试一下吧!~