Salesforce SOQL一次性获得案例所有者

Fen*_*ton 1 salesforce soql

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

SELECT Case.OwnerId 
FROM Case 
WHERE Case.CaseNumber = '00001234'
Run Code Online (Sandbox Code Playgroud)

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

SELECT User.Id, User.Name, User.Custom_Field__c 
FROM User 
WHERE User.Id = '001A0000001abc1DEF'
Run Code Online (Sandbox Code Playgroud)

但我不能让它在一个声明中工作,我认为这是因为所有者!=用户,即使在这种情况下所有者实际上是用户.我试过了:

SELECT Owner.Custom_Field__c
FROM Case 
WHERE Case.CaseNumber = '00001234'
Run Code Online (Sandbox Code Playgroud)

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

sup*_*ell 5

Case上的所有者是一种多态关系,它可以是多种不同类型之一.当发生这种情况然后使用SOQL-R时,您只能选择所指向类型共有的字段子集(这些字段都在名为"Name"的伪实体上公开),因此您将无法查询自定义用户上的字段.您必须对Case进行查询,然后收集所有者集并向User和/或Group进行查询以获取更详细的信息.