获取特定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
});
}
我认为使用SQL Server可以更容易地得到这个答案。(这就是它要做的事情。)试着替换你的查询:
SELECT distinct(ADMINID) FROM MAPPING WHERE SUBSID = 1
这个:
SELECT * FROM MAPPING WHERE SUBSID = 1 AND EmailId = AdminId
(理想情况下,您应该避免使用"Select*",而是显式列出列。这是一种很好的做法,有助于在表结构发生变化时避免错误。)更改查询应该可以得到结果,而无需在C#应用程序中对数据进行任何后处理。