我正在尝试找出如何进行特定查询,但是我受我的知识所限制。因此,任何帮助将不胜感激。
我有一些对象:员工,员工角色分配,学生组等。
我想做的是:
在每个“员工”个人页面内,创建一个表,其中包含已选择分配给特定员工的学生组的学生的学生信息。对象之间的关系是员工到员工角色分配(一对多),员工角色到学生组分配(多对一)。每个员工被分配许多角色,每个角色被分配一个学生团体。
我想做的是这样的:
SELECT Opportunity__r.Name, Opportunity__r.Email__c, Opportunity__r.Phone__c, Opportunity__r.Parent_Guardian_Email__c, Student_group__r.Name, Opportunity__r.Personal_Statement__c FROM Content__c WHERE Student_group_r.Employee_role_assignment__r.Employee__r.Id = :id
在WHERE之后的最后一部分是我所坚持的。有没有办法传递ID?
答案 0 :(得分:0)
在Salesforce术语中,“员工角色分配”是连接对象。
您要在此处添加几个额外的对象,这会使此操作更具挑战性。看起来您具有从Content__c
到Opportunity
以及从Content__c
到Student_Group__c
的查找关系,并且所需的大多数数据实际上位于商机上。 Content__c
有点像第二个结点对象。
您要根据机会是否与内容相关联来过滤机会,该内容与与该页面所在的员工相关联的学生团体相关。哇。
如果我正确理解了您的数据模型,则可以使用半联接子选择来实现。 看起来像这样:
List<Content__c> results = [
SELECT Opportunity__r.Name, Opportunity__r.Email__c, Opportunity__r.Phone__c ...
FROM Content__c
WHERE Student_Group__c IN (
SELECT Student_Group__c
FROM Employee_Role_Assignment__c
WHERE Employee__c = :thisEmployeeId
)
];
内部:
子句中带有WHERE
的Apex绑定是将存储在某些局部变量中的Employee ID注入查询的方法。