1

我有 SOQL 查询,它根据 where 条件查询一些记录。

select id, name,account.name ... <other fields> from opportunity where eventname__c='Test Event'

我还需要获取机会中帐户的相关联系方式。即我需要添加联系人的电子邮件 ID,他们都是机会中帐户的一部分。

对于每个机会,我需要获取与机会中的帐户关联的所有联系人电子邮件 ID。

我真的不知道如何解决这个问题。参考文档我可以使用查询获取帐户的联系信息

SELECT Name,
(
SELECT LastName
FROM Contacts
)
FROM Account

我怎样才能利用这个机会?

谢谢

4

1 回答 1

6

问题是您正试图从机会向上遍历到其父级(帐户),然后再返回到子级(联系人)。

我认为您必须分两个阶段进行,例如:

id[] accountids = new id[]{};
for (opportunity opp : [select accountid from opportunity where eventname__c='Test Event'])
{
      accountids.add (opp.accountid);  
}
account[] acclist = [select name, (select email from contacts) from account where id in :accountIds]; 
于 2012-03-22T15:04:08.167 回答