Soql查询以获取机会中帐户的所有相关联系人

Pra*_*ady 1 salesforce soql

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

select id, name,account.name ... <other fields> from opportunity where eventname__c='Test Event'
Run Code Online (Sandbox Code Playgroud)

我还需要在机会中获取该帐户的相关联系详细信息.即我需要添加联系人的电子邮件ID,这些联系人都是机会中帐户的一部分.

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

我真的无法弄清楚如何处理这个问题.参考文档我可以使用查询获取帐户的联系信息

SELECT Name,
(
SELECT LastName
FROM Contacts
)
FROM Account
Run Code Online (Sandbox Code Playgroud)

我怎样才能将这与机会一起使用?

谢谢

nao*_*omi 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]; 
Run Code Online (Sandbox Code Playgroud)

  • 我认为只用一个Soql查询就可以得到你想要的东西.使用SOQL,您可以访问您查询的对象的父项和/或子项,但您无法访问父项的其他子项(例如,从机会开始并通过帐户查询联系人是不可能的) (4认同)
  • 嗨Prady,naomi是对的,你不能在一个查询中上下,所以你必须分两部分.一个是获取您的机会数据和帐户ID,然后另一个来获取帐户联系信息. (2认同)