簡體   English   中英

如何獲得鏈接到管理員的所有用戶的列表?

[英]How can I get a list of all users in groups linked to the admin?


例如,我有3個基團與下列標識: 123 ;

 id | name     |
 ---------------
  1  |  group1 | 
  2  |  group2 | 
  3  |  group3 | 

另外,我在這些組中有用戶:第1組為2個,第2組為3 ,第3組為1 3

 id | user | groupid |
 ---------------------
  1  |  user1 | 1
  2  |  user2 | 1
  3  |  user3 | 2
  4  |  user4 | 2
  5  |  user5 | 2
  6  |  user6 | 3

當然,我有表格admgroups

id | groupid | admid |
----------------------
1  |  1      | 3     |
2  |  2      | 4     |
3  |  3      | 3     |
4  |  2      | 5     |

我想要得到的-一個列表,其中應包括與admin鏈接的組中的所有用戶,例如id =3。因此結果應類似於: var list = {"user1", "user2", "user6"}

您可以使用select進行以下操作。 首先,找到與指定管理員相關的groupid 然后,選擇具有所選groupid用戶:

var admin_id = 3;
var admin_groups = admgroups.Where(x=> x.admid == admin_id).Select(x=> x.groupid).ToList();
var result = users.Select(x=> admin_groups.Contains(x.groupid)).ToList();

只需將這些行放入代碼中:

var list = (from cl in (from adm in admgroups
                join gr in groups
                    on adm.groupid equals gr.Id
                where adm.admid==3
                select new {gr.Id})
                join client in users
                on cl.Id equals client.groupid
                        select new {client.user}).ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM