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

Salesforce Soql查询以获取opportunity中帐户的所有相关联系人,salesforce,soql,Salesforce,Soql,我有一个SOQL查询,它根据where条件查询一些记录 select id, name,account.name ... <other fields> from opportunity where eventname__c='Test Event' 我如何利用这个机会 谢谢问题在于您正试图从opportunity向上遍历到它的父级(帐户),然后再向下遍历到子级(联系人) 我认为您必须分两个阶段进行,例如大致如下: id[] accountids = new id[]{}; for

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

select id, name,account.name ... <other fields> from opportunity where eventname__c='Test Event'
我如何利用这个机会


谢谢

问题在于您正试图从opportunity向上遍历到它的父级(帐户),然后再向下遍历到子级(联系人)

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

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]; 

问题是您正试图从opportunity向上遍历到它的父级(帐户),然后再向下遍历到子级(联系人)

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

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]; 

这真的可以通过一个SoQL查询来实现吗?我不认为仅仅通过一个SoQL查询就可以得到您想要的东西。使用SOQL,您可以访问正在查询的对象的父对象和/或子对象,但无法访问父对象的其他子对象(例如,从opportunity开始,无法通过帐户查询联系人)。我发布的代码应该会提供您想要的所有帐户,并附上他们的联系人。嗨,Prady,naomi是对的,您不能在一个查询中上下移动,因此必须分两部分进行。一个用于获取您的opportunity数据和帐户ID,另一个用于获取帐户联系信息。感谢naomi和@laceySnr。第三方应用程序只接受SQOL查询。我正在考虑解决这个问题。让我知道这是否是正确的做法。。我可以创建一个新的自定义对象,其中包含此查询所需的所有字段。我可以编写一个批处理过程或类,单击按钮将调用该批处理过程或类以将数据填充到此对象中。在此对象上编写一个简单的SOQL查询,并将此查询传递给第三方应用程序。这是否真的可以使用SOQL查询来实现?我认为不可能只使用一个SOQL查询就得到您想要的结果。使用SOQL,您可以访问正在查询的对象的父对象和/或子对象,但无法访问父对象的其他子对象(例如,从opportunity开始,无法通过帐户查询联系人)。我发布的代码应该会提供您想要的所有帐户,并附上他们的联系人。嗨,Prady,naomi是对的,您不能在一个查询中上下移动,因此必须分两部分进行。一个用于获取您的opportunity数据和帐户ID,另一个用于获取帐户联系信息。感谢naomi和@laceySnr。第三方应用程序只接受SQOL查询。我正在考虑解决这个问题。让我知道这是否是正确的做法。。我可以创建一个新的自定义对象,其中包含此查询所需的所有字段。我可以编写一个批处理过程或类,单击按钮将调用该批处理过程或类以将数据填充到此对象中。在此对象上编写一个简单的SOQL查询,并将此查询传递给第三方应用程序。