[英]SOQL - APEX - List
大家好,
我有一个列表,其中包含来自查询的值。 该列表包含多个字段,如何从该列表访问特定字段?
问题:
List <Account> listS = [Select
(Select S__c from AS__r
where S__r.Abc__c = 'Confirmed'),
(Select PQR__c from AHS__r)
from Account where Id in: TravellerIds];
List <AS__c> listAS = new list <AS__c>();
for (Account t: listS){
listAS.add(t.AS__r);
}
伪代码中的问题 :
对于(listS中的每个帐户){
ListAS.add(listS的S__c字段); }
我已经尝试了在“问题”部分中提到的内容,但是无法访问它。 请帮我。
我得到的错误是 :列表有多于1行分配给SObject。
非常感谢您的帮助。
注意:我不想为每个AS _c访问for循环内的S_ c字段 。我想为每个帐户访问它。
在查询父子关系时,Account对象上的字段t.AS__r
实际上是满足子查询条件的对象的列表。 因此,您要做的就是更改listAS.add(t.AS__r);
成为listAS.addAll(t.AS__r);
这将使您的示例代码正常工作-将子查询中返回的所有项目添加到新列表中。
通过扩展,如果您想添加所有S_ c字段(如您在伪代码中所述),那么您要做的就是遍历每个帐户的子查询列表,然后将S _c字段添加到列表中,如下所示:
List<string> listOfS = new List<string>();
for(Account acc : listAS){
for(A__c a: acc.AS__r){
listOfS.add(a.S__c);
}
}
这假设关系名称AS__r
引用的自定义对象的API名称为A__c
,并且字段S__c
的类型为字符串-但希望您能理解。
这有帮助吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.