Delen via


Gebruik een left outer join in FetchXML voor het uitvoeren van query's voor records "niet in"

 

Gepubliceerd: november 2016

Is van toepassing op: Dynamics CRM 2015

U kunt een left outer join in FetchXML gebruiken door een query uit te voeren met filters op de jointabel, zoals om alle contactpersonen te vinden die geen campagneactiviteiten in afgelopen twee maanden hebben gehad. Een veelgebruikt ander gebruik voor dit type query is het vinden van records "niet in" een reeks, zoals in deze gevallen:

  • U vindt alle leads die geen taken hebben

  • U vindt alle accounts die geen contactpersonen hebben

  • U vindt alle leads die één of meer taken hebben

Een left outer join levert elke rij op die tegemoet komt aan de join van de eerste invoer met de tweede invoer. Het levert ook alle rijen op van de eerste invoer die geen overeenkomende rijen in tweede de invoer had. De niet-overeenkomende rijen in de tweede invoer worden gevonden als null-waarden.

U kunt een left outer join in FetchXML uitvoeren met behulp van het kenmerk entityname als voorwaardenoperator. Het kenmerk entityname is geldig in voorwaarden, filters, en genestelde filters.

U kunt een query via een programma maken met een left outer join en de query uitvoeren met RetrieveMultipleRequest en u kunt de query opslaan door een SavedQuery record te maken. U kunt een opgeslagen query openen die een left outer join bevat in de editors Geavanceerd Zoeken of Opgeslagen Query in de webtoepassing en de resultaten uitvoeren en bekijken, maar een deel van de functies van de editor is uitgeschakeld. Deze editors staan wijzigingen aan de query toe, zoals het wijzigen van de geretourneerde kolommen, maar de editor ondersteunt het wijzigen van de left outer join niet.

Voorbeeld: U vindt alle accounts die geen leads hebben

Hierna ziet u hoe u de query construeert in FetchXML:

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

Voorbeeld: u vindt alle leads die geen taken hebben, met een alias

Hierna ziet u hoe u de query construeert in FetchXML:

<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/>

Dit komt overeen met de volgende SQL:

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

Zie ook

Bouw query's met FetchXML
Voorbeeld: Samenvoeging gebruiken in FetchXML
FetchXML gebruiken om een query te construeren
Voorbeeld: Een opgeslagen query valideren en uitvoeren

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht