SOQL查询左联接的自定义对象

时间:2019-11-26 14:35:18

标签: salesforce soql salesforce-lightning

我需要从Salesforce中获取数据。我需要从两个自定义对象获取数据。一世 用sql编写查询,谁能帮助我将其转换为SOQL

1 个答案:

答案 0 :(得分:1)

您可能知道,Salesforce SOQL没有显式的JOIN子句。它根据相关的对象字段为您隐式执行此操作。这意味着您必须查询Account_Enrollment__c并遍历字段以获取相关的Enrollment_Program__c查找关系。

另一个问题是Salesforce仅基于主键和外键执行联接,因此查询中的EP.Crop_Year__c = AE.Crop_Year__c无法正常工作。

因此,您可以尝试以下操作:

SELECT Enrollment_Program__c, Enrollment_Program__e.Name,
 Enrollment_Program__r.Crop_Year__c, Enrollment_Program__r.Targeted_Enrollment_Segments__c,
 Enrollment_Program__r.Description__c, Enrollment_Program__r.Start_Date__c,
 Enrollment_Program__r.End_Date__c 
FROM Account_Entrollment_Program__c WHERE Account__c = 'zyz'

如果您事先知道Crop_Year__c的值,则可以将其添加到查询中:

AND Crop_Year__c=:year AND Enrollment_Program__c.Crop_Year__c=:year

有关查询的一些详细信息: 后缀__r是查询中查找寻址对象的方式。如果仅对ID感兴趣,则可以使用__c:year是将参数year传递给查询的方式。如果您想将其附加为文本,则可以使用... Crop_Year='+ year + '