2017-10-11 1 views
1

J'ai l'utilisateur de la table qui a nom d'utilisateur et nom de gestionnaire.Je veux obtenir le nom d'utilisateur pour qui ont manager = 'test'. Je veux obtenir l'utilisateur qui ont Ramya en tant que gestionnaire et la reportée chercher les données récursives dans SQL requête

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

de Je veux reportée obtenir le nom Ramya et Vani de la reportée Ramya, Priya et mani et obtenir latha qui a des Vani en tant que gestionnaire qui a des Ramya en tant que gestionnaire. Je veux Ramya, Vani, Priya, mani et latha

Répondre

1

Vous pouvez utiliser ci-dessous requête:

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' 

Sortie:

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

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

PS: I Je n'ai jamais utilisé Laravel avant mais après avoir lu quelques docs je pense que la requête pourrait être écrite de cette façon là

$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(); 
+0

Son utile merci beaucoup – user3386779