我正在尝试编写一个SOQL查询,该查询将用户信息与DefaultDivision的名称一起拉回来。执行以下操作时:
Select u.Email, u.FirstName, u.LastName, u.DefaultDivision from User u
' DefaultDivision'的值是一个Id(如02d3498202020222)而不是友好名称(如北美)。我知道DefaultDivision映射到了Division对象的Id,但是我如何得到这个名字呢?
我尝试过这样的事情:
select u.Email, (select Name from Division where Id = u.DefaultDivision) from User u
但这并不起作用,因为没有直接的关系(但是,有......!)。
答案 0 :(得分:1)
与SQL不同,SOQL不支持您在那里提供的类型的子查询。
在SOQL的大多数情况下,如果定义了明确的关系,您可以直接从该显式关系中查询数据,例如
select u.Email, u.DefaultDivision.Name from User u where Id=blahblahblah
然而,在某些情况下,这种关系没有明确定义,我相信DefaultDivision就是其中之一(所以实际上我的查询可能不起作用)。在这种情况下,没有单一查询方式来获取您想要的信息 - 您必须首先查询分部及其ID,然后使用DefaultDivision查询用户,然后使用ID解析分部名称第一个查询的结果。
幸运的是,这种情况不再经常发生,但是在使用Divisions时,你会对Salesforce.com的深度进行一些调整,以便在那里找到一些不寻常的东西。