获取特定SubsId的AdminId相同的EmailId

本文关键字:EmailId AdminId 获取 SubsId | 更新日期: 2023-09-27 18:25:38

我在Sql服务器&我需要为特定的SubsId获取具有相同AdminId的EmailId,有人能给我一些更好的方法吗?

MAPPING表SubsId AdminId EmailId1 1 11 1 21 2 31 22 2

我需要为特定的SubsId(比如1)获取具有相同AdminId的EmailId。我这样做,有更好的方法吗?

 public class Mapping
 {
   public int SubsId {get; set;}
   public int AdminId {get; set;}
   public List<int> LstEmailId {get; set;}
 }
 SELECT distinct(ADMINID) FROM MAPPING WHERE SUBSID = 1.

执行此查询,获取int列表中返回的管理员ID,然后循环列表中的所有管理员ID。假设AdminId在列表LstAdminId中,然后是

 var ObjLstMapping = new List<Mapping>();
 foreach(AdminId in LstAdminIds )
 {
     var LstEmailIds = List<int>();
     SELECT EMAILID FROM MAPPING WHERE SUBSID=1 AND ADMINID = AdminId
     // execute this query which will return a set of rows. Loop through each row & add to the list LstEmailIds 
    while(ObjSqldataReader.Read())
    {
       LstEmailIds.Add(Convert.Tont32(ObjSqldataReader["EMAILID"]))
    }
    ObjLstMapping. Add(new Mapping
    {
        SubsId = 1,
        AdminId = AdminId,
        LstEmailId = LstEmailIds 
    });
 }

获取特定SubsId的AdminId相同的EmailId

我认为使用SQL Server可以更容易地得到这个答案。(这就是它要做的事情。)试着替换你的查询:

SELECT distinct(ADMINID) FROM MAPPING WHERE SUBSID = 1

这个:

SELECT * FROM MAPPING WHERE SUBSID = 1 AND EmailId = AdminId

(理想情况下,您应该避免使用"Select*",而是显式列出列。这是一种很好的做法,有助于在表结构发生变化时避免错误。)更改查询应该可以得到结果,而无需在C#应用程序中对数据进行任何后处理。