1

使用 Salesforce SOQL,我可以使用以下内容获取所有者 ID:

SELECT Case.OwnerId 
FROM Case 
WHERE Case.CaseNumber = '00001234'

然后,我可以在此查询中获取拥有该案例的用户的用户详细信息:

SELECT User.Id, User.Name, User.Custom_Field__c 
FROM User 
WHERE User.Id = '001A0000001abc1DEF'

但是我不能让它在单个语句中工作,我认为这是因为所有者!=用户,即使在这种情况下所有者实际上是用户。我努力了:

SELECT Owner.Custom_Field__c
FROM Case 
WHERE Case.CaseNumber = '00001234'

但我收到一个错误,即 Custom_Field__c 不是有效字段。

4

2 回答 2

5

Case 上的 Owner 是一种多态关系,它可以是多种不同类型中的一种。发生这种情况时,使用 SOQL-R 您只能选择对所指向的类型通用的字段子集(这些都暴露在名为“名称”的伪实体上),因此您将无法查询自定义用户字段。您必须对案例进行查询,然后收集所有者集并对用户和/或组进行查询以获取更详细的信息。

于 2011-10-03T15:56:50.180 回答
2

您可以使用 SOQL 中的半连接来完成此操作。我对其进行了测试,即使 Owner 是多态的,它仍然有效:

SELECT Custom_Field__c 
FROM User 
WHERE Id IN (SELECT OwnerId 
             FROM Case
             WHERE Case.CaseNumber = '00001234')
于 2011-10-03T23:59:12.410 回答