在 sql 查询中获取递归数据

fetch the recursive data in sql query

我有 table 用户 user_name 和经理 name.I 想要获得经理 ='test' 的用户名。我想得到将 ramya 作为经理和被举报人的被举报人的用户

users table 
SNO user_name   manager
1    vani        Ramya
2    ramya       geetha
3    priya       ramya
4    mani        ramya
5    latha       vani
6.   hema        Anitha 

我想得到 ramya 和 ramya 的报告人 vani、priya 和 mani 的名字,并得到让 vani 担任经理的 latha,而让 ramya 担任经理的拉萨。我想要 ramya,vani,priya,mani 和 latha

您可以使用以下查询:

select a.user_name from 
users a left join users b
on a.manager=b.user_name
where a.user_name='Ramya' or a.manager='ramya' or b.manager='Ramya'

输出:

| user_name |
|-----------|
|     latha |
|      vani |
|     priya |
|      mani |
|     ramya |

SQL Fiddle : http://sqlfiddle.com/#!9/f57b06/10

P.S :我以前从未使用过 Laravel 但在阅读了一些文档后我认为可以在其中以这种方式编写查询

$users = DB::table('users as a')
            ->select('a.user_name')
            ->leftJoin('users as b', 'a.manager', '=', 'b.user_name')
            ->where('a.user_name','Ramya')
            ->orwhere('a.manager','Ramya')
            ->orwhere('b.manager','Ramya')
            ->get();