我需要从Salesforce中获取数据。我需要从两个自定义对象获取数据。一世 用sql编写查询,谁能帮助我将其转换为SOQL
答案 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 + '
。