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

SOQL Query for Left Join for custom objects

我需要从销售团队获取数据。我需要从两个自定义对象中获取数据。我 已在 sql 中编写查询 谁能帮我将其转换为 SOQL

您可能知道,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 + '.