SOQL - 如何获取CombinedAttachments的父名称

时间:2014-03-09 09:25:51

标签: salesforce soql

我无法获取父对象的名称,其中子对象是CombinedAttachments。 我使用的SOQL如下所示,并按预期工作。

  

SELECT(SELECT Id,Title,RecordType,LastModifiedDate,   来自CombinedAttachments WHERE ParentId的CreatedBy.Name,ParentId   ='001b0000009ovxS'Order By LastModifiedDate DESC limit 100)FROM Account WHERE Id ='001b0000009ovxS'

不可能添加像Parent.Name或Parent.Account.Name这样的字段。 但是,在像这样的父子查询的其他情况下,通过使用像Parent.CaseNumber或Who.Name这样的点表示法来引用父字段是很简单的。 似乎是因为在ParentID中可能存在多个引用(帐户,资产,广告系列,案例,联系人,合同,电子邮件模板,事件,潜在客户,机会,产品2,解决方案,任务)

2 个答案:

答案 0 :(得分:0)

使用多态关系字段(例如CombinedAttachments.ParentId),该字段可以引用大量类型。

在这种情况下,您只能选择所有被引用类型共有的字段子集。

您需要对帐户进行二次查询以提取必填字段。

或者,您可以撤消联接以获取“帐户”字段,但现在您已丢失了CombinedAttachments字段。

SELECT Id, Name
FROM Account
WHERE Id IN (Select ParentID from CombinedAttachments)

除此之外,还有一个专门针对Salesforce问题的Salesforce StackExchange site

答案 1 :(得分:0)

一种经过测试的方法是在父方使用父字段名称,而不是从子查询中引用它:

  

SELECT Name,Id,(SELECT Id,Title,RecordType,LastModifiedDate,   来自CombinedAttachments WHERE ParentId =的CreatedBy.Name,ParentId   '001b0000009ovxS'Order By LastModifiedDate DESC limit 100)FROM   帐户WHERE Id ='001b0000009ovxS'

相关问题