Partager via


Utiliser une jointure externe gauche dans QueryExpression pour rechercher les lignes « pas dans »

Vous pouvez utiliser une jointure externe gauche via la classe QueryExpression pour effectuer une requête qui filtre sur la table de jointure, telle que rechercher tous les contacts sans activité de campagne au cours des deux derniers mois. Une autre utilisation courante pour ce type de requête consiste à rechercher des lignes de table (enregistrements) « à l’extérieur » d’un ensemble, comme dans les cas suivants :

  • Rechercher tous les prospects qui n’ont pas de tâche
  • Rechercher tous les comptes qui n’ont pas de contact
  • Rechercher tous les prospects qui ont une ou plusieurs tâches

Une jointure externe gauche renvoie chaque ligne qui répond à la jointure de la première entrée avec la seconde entrée. Elle renvoie également toute ligne de la première entrée qui n’avait pas de lignes correspondantes dans la seconde entrée. Les lignes sans correspondance de la seconde entrée sont renvoyées comme valeurs nulles.

Vous pouvez effectuer une jointure externe gauche dans QueryExpression en utilisant la colonne entityname comme opérateur de condition. La colonne entityname est valide en termes de conditions, de filtres et de filtres imbriqués.

Rechercher tous les prospects qui n’ont pas de tâche, à l’aide d’un alias

L’exemple suivant montre comment construire cette requête :

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);

Cela équivaut au SQL suivant :

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

Voir aussi

Générer des requêtes avec QueryExpression
Utilisation de la classe QueryExpression
Utilisation de la classe QueryByAttribute

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).