使用在 QueryExpression 的左外部联接来查询“不在”记录。

 

发布日期: 2017年1月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online

您可以通过 QueryExpression 类使用左外部联接,以执行对联接表筛选的查询,例如查找在前两个月没有任何市场活动的所有联系人。 此类查询的另一种常用方法是查找“不在”集合中的记录,例如下列情形:

  • 查找没有任务的所有潜在顾客

  • 查找没有联系人的所有客户

  • 查找有一个或多个任务的所有潜在顾客

左外部联接返回满足第一个输入与第二个输入的联接的每一行。 它还返回在第二行中输入中没有匹配行的第一个输入中的所有行。 第二个输入中的不匹配行作为 null 值返回。

您可以通过将 entityname 属性作为条件运算符,在 QueryExpression 中执行左外部联接。entityname 属性在条件、筛选器和嵌套筛选器中有效。

使用别名查找没有任务的所有潜在顾客

以下示例演示如何构建此查询:

QueryExpression qx = new QueryExpression("lead");
qx.ColumnSet.AddColumn("subject");

LinkEntity link = qx.AddLink("task", "leadid", "regardingobjectid", JoinOperator.LeftOuter);
link.Columns.AddColumn("subject");
link.EntityAlias = "tsk";

qx.Criteria = new FilterExpression();
qx.Criteria.AddCondition("tsk", "activityid", ConditionOperator.Null);

这与以下 SQL 等效:

SELECT lead.FullName
FROM Leads as lead
LEFT OUTER JOIN Tasks as ab
ON (lead.leadId  =  ab.RegardingObjectId)
WHERE ab.RegardingObjectId is null

另请参阅

使用 QueryExpression 构建查询
测试 Null 值
使用 QueryExpression 类
使用 QueryByAttribute 类

Microsoft Dynamics 365

© 2017 Microsoft。 保留所有权利。 版权