繁体   English   中英

Salesforce SOQL如何定位另一个表中的id

[英]Salesforce SOQL How can i target an id that is in another table

我想弄清楚如何做一个特定的查询,但我受限于我的知识。 所以任何帮助都将深表感谢。

我有一些对象: 员工,员工角色分配,学生组等。

我想做的是:

在每个员工个人页面中,创建一个表格,其中包含已选择分配给特定员工的学生组的学生的学生信息。 对象之间的关系是员工到员工的角色分配(一对多),员工角色分配给学生组(多对一)。 每个员工都分配了许多角色,每个角色都分配了一个学生组。

我想要做的是这样的事情:

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之后,是我被困在的地方。 有没有办法传递身份证?

在Salesforce术语中,Employee Role Assignment是一个联结对象

你在这里添加了几个额外的对象,这使得这更具挑战性。 看起来你有一个从Content__cOpportunity以及从Content__cStudent_Group__c的查询关系,你想要的大部分数据实际上都位于Opportunity上。 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子句是什么注入雇员的ID,存储在某些局部变量,进入查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM