左外部結合を QueryExpression で使用して "存在しない" 行をクエリする
QueryExpression クラスの使用して、左外部結合を使用し、結合の表をフィルタリングするクエリを実行します。たとえば、過去 2 か月間のキャンペーン活動がない、取引先担当者をすべて検索できます。 このクエリタイプの別のよくある使用法では、次のような場合には存在しないといった、あるセットには "存在しない" テーブル行 (レコード) を検索するクエリです。
- タスクのないすべての潜在顧客を検索する
- 取引先担当者のないすべての取引先企業を検索する
- 1つか、2つのタスクがあるすべての潜在顧客を検索する
左外部結合では、2 番め入力で最初の入力の結合を満たす各列を返します。 また、2 番目入力で一致する列がない最初の入力列を返します。 2 番めの一致しない列が 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 でクエリを作成する
QueryExpression クラスの使用
QueryByAttribute クラスの使用
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。