Freigeben über


Verwenden Sie einen linken äußeren Join in FetchXML , um nach Datensätzen zu suchen, die „nicht in“ sind.

Sie können einen Left Outer Join verwenden, um eine Abfrage auszuführen, die die Join-Tabelle filtert, um beispielsweise alle Kontakte zu finden, die in den letzten zwei Monaten keine Kampagnenaktivitäten hatten. FetchXML Eine weitere allgemeine Verwendung dieses Abfragetyps ist das Suchen von Datensätzen, die „nicht in“ sind, wie in folgenden Fällen:

  • Suchen aller Leads, die über keine Tasks verfügen.

  • Suchen aller Firmen, die über keine Kontakte verfügen

  • Suchen aller Leads, die mindestens eine Task verfügen.

    Eine linke äußere Verknüpfung gibt jede Zeile zurück, die der Verknüpfung der ersten Eingabe mit der zweiten Eingabe entspricht. Es werden auch alle Zeilen aus der ersten Eingabe zurückgegeben, die in der zweiten Eingabe keine Übereinstimmung haben. Die nicht übereinstimmenden Zeilen in der zweiten Eingabe werden als Nullwerte zurückgegeben.

    Sie können einen linken äußeren Join durchführen, FetchXML indem Sie die entityname Spalte als Bedingungsoperator verwenden. Die Spalte entityname ist in Bedingungen, Filtern und verschachtelten Filtern gültig.

    Sie können eine Abfrage mithilfe einer linken, äußeren Verknüpfung programmatisch erstellen und die Abfrage mithilfe von RetrieveMultipleRequest ausführen, und Sie können die Abfrage speichern, indem Sie einen SavedQuery-Datensatz erstellen. Sie können eine gespeicherte Abfrage öffnen, die eine linke, äußere Verknüpfung in den Editoren für die Erweiterte Suche oder Gespeicherte Abfrage in der Webanwendung enthält, und Sie können die Ergebnisse anzeigen. Manche Funktionen des Editors sind aber deaktiviert. Diese Editoren lassen Änderungen der Abfrage zu, wie beispielsweise die zurückgegebenen Spalten zu ändern. Der Editor unterstützt jedoch nicht das Ändern der linken, äußeren Verknüpfung.

Beispiel: Suchen Sie alle Firmen, die über keine Leads verfügen.

Nachfolgend wird die Erstellung der Abfrage in FetchXML gezeigt:

<fetch mapping='logical'>  
 <entity name='account'>  
  <attribute name='name'/>  
  <link-entity name='lead'  
               from='leadid'  
               to='originatingleadid'  
               link-type='outer'/>  
  <filter type='and'>  
   <condition entityname='lead'  
              attribute='leadid'  
              operator='null'/>  
  </filter>  
 </entity>  
</fetch>  
  

Beispiel: Suchen Sie alle Leads, die keine Aufgaben haben, mithilfe eines Alias

Nachfolgend wird die Erstellung der Abfrage in FetchXML gezeigt:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">  
  <entity name="lead">  
    <attribute name="fullname" />  
    <link-entity name="task" from="regardingobjectid" to="leadid" alias="ab" link-type="outer">  
       <attribute name="regardingobjectid" />  
    </link-entity>  
    <filter type="and">  
        <condition entityname="ab" attribute="regardingobjectid" operator="null" />  
    </filter>  
  </entity>  
<fetch/>  
  

Dies ist äquivalent zu folgendem SQL:

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

Siehe auch

Erstellen Sie Abfragen mit FetchXML
Beispiel: Verwenden Sie Aggregation in FetchXML
Verwenden Sie FetchXML , um eine Abfrage zu erstellen
Beispiel: Eine gespeicherte Abfrage validieren und ausführen

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).