我有一张桌子employeehierarchy,里面有很多记录。我想把所有的记录都拿来。
在这个表中,安硕是最高级的员工,我想得到所有初级雇员的名字,比如Yogesh,Chirag,Vimal和Ajay。
| Id | name | | Senior | | | | | |
+---------+--------------------------+----+------------+----+--+--+--+--+
| 14 | Anshul | | 0 | | | | | |
| 15 | Yogesh | | 14 | | | | | |
| 16 | Chirag | | 15 | | | | | |
| 17 | Vimal | | 16 | | | | | |
| 18 | Ajay | | 17 | | | | | |为了实现这一点,我需要一个mysql查询。谢谢
发布于 2015-11-25 13:06:17
希望这能帮上忙,
SELECT @id :=
(SELECT Id
FROM employeehierarchy
WHERE Senior = @id
) AS employee
FROM (
SELECT @id := 14
) vars
STRAIGHT_JOIN
employeehierarchy
WHERE @id IS NOT NULL;发布于 2014-07-31 06:33:24
您需要在数据库中添加一些东西,以便在高级员工和初级员工之间建立关系。不幸的是,您如何实现这种关系超出了这个问题的范围。因为这涉及到数据库体系结构的更多内容。一种选择是在现有表中为每个员工创建一个新字段,该字段保存高级员工的id。另一种选择是有一个单独的表,其中您有三个字段id、employee id和高级id。
我建议第二种选择。然后,您可以在SQL中建立一个条件联接。
https://stackoverflow.com/questions/25051884
复制相似问题