2011-12-20 66 views
1

我正在尝试访问孙子对象。Salesforce和SOQL:访问祖父母的孙子对象

我有3个对象,

 Opportunity, 
      Quote, 
       QuoteLineItems, 

机会是引用父和报价是父母给QuoteLineItems。

不幸的是,为此写入查询证明具有挑战性。我使用的是Force.com浏览器,并且没有来自Opportunity和QuoteLineItems的直接关系。您只能将Select语句嵌套一层。

我正在寻找写一个查询,将抓住这些对象的所有字段(我可以手动输入字段),但我不知道连接逻辑如何工作。

选择ID,(从报价中选择ID)从机会。

不知何故,我需要在此查询中加入Quotelineitems。

有什么想法?

回答

3

API docs“在每个指定的关系中,只能在查询中指定一个父级到子级关系级别。”

去另一个方向(孩子对父母),你可以遍历五个级别。所以,这样的事情可能会为你工作:

SELECT Id, Quantity, Quote.Name, Quote.Opportunity.Name FROM QuoteLineItem ...

+1

确切的说。以下类似的查询是允许的:List oppLI = [SELECT Id,OpportunityId,PricebookEntry.Product2.Name,PricebookEntry.Product2.Family FROM OpportunityLineItem] – Adam 2011-12-20 23:54:52

+0

谢谢大家。不幸的是,我必须采取与此不同的方法,但确认我最初的预感是正确的是您提供的。教育非常有帮助。再次感谢! – 2011-12-21 17:22:22

0

我挣扎这么难想出解决办法,并回答了这个职位是什么终于让我明白了。网上很少有例子!

对我来说,问题在于,您为儿童与祖父母的关系的顺序是违反直觉的。这是如何工作的:

(parent).(grandparent).(field) 

(parent).(grandparent).(great-grandparent).(field) 

如上所述,您可以上升到5个级别。

一些例子(包括从这里的答案之一):

关系链从祖父母到父到子: 机遇 - 报价 - QuoteLineItem

样品查询:

SELECT Id, Quantity, Quote.Name, Quote.Opportunity.Name FROM QuoteLineItem 

关系从祖父母到父母到子女的链: 帐户 - Bill_to_Contact__r(自定义) - 报价

样品查询:

SELECT Name, License_To_Contact__r.Name, Bill_To_Contact__r.Account.Name FROM Quote 
相关问题