Salesforce和SOQL:从祖父母访问孙子对象

时间:2011-12-20 21:45:06

标签: salesforce parent-child soql grandchild

我正在尝试访问孙子对象。

我有3个物体,

     Opportunity,
          Quote,
              QuoteLineItems,

机会是引用的父母,而Quote是QuoteLineItems的父母。

不幸的是,为此编写查询证明具有挑战性。我正在使用Force.com资源管理器,并且没有从Opportunity到QuoteLineItems的直接关系。您只能将Select语句嵌套一层深度。

我正在寻找一个可以从这些对象中获取所有字段的查询(我可以手动输入字段),但我不确定连接逻辑是如何工作的。

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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

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

走向另一个方向(孩子对父母),你可以遍历五个等级。所以,这样的事情可能适合你:

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

答案 1 :(得分: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