Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Joinforbinder en tabel, der er relateret til objektet eller linkobjektet , for at returnere flere kolonner med resultatet. Bruges også sammen med filterelementer til at anvende betingelser på kolonneværdier i relaterede tabeller.
Få mere at vide om, hvordan du joinforbinder tabeller ved hjælp af FetchXml.
Eksempler
Følgende eksempler viser brug med link-entity forskellige typer relationer.
Mange til en-relation
Denne forespørgsel returnerer data fra tabellerne konto og kontakt baseret på opslagskolonnen PrimaryContactId i kontoposten:
<fetch>
<entity name='account'>
<attribute name='name' />
<link-entity name='contact'
from='contactid'
to='primarycontactid'
link-type='inner'
alias='contact'>
<attribute name='fullname' />
</link-entity>
</entity>
</fetch>
En til mange-relation
Denne forespørgsel returnerer data fra tabellerne kontakt og konto baseret på account_primary_contact en til mange-relation.
<fetch>
<entity name='contact'>
<attribute name='fullname' />
<link-entity name='account'
from='primarycontactid'
to='contactid'
alias='account'>
<attribute name='name' />
</link-entity>
</entity>
</fetch>
Mange til mange-relation
Denne forespørgsel returnerer data fra tabellerne SystemUser og Team ved hjælp af teammembership_association mange til mange-relationen.
<fetch>
<entity name='systemuser'>
<attribute name='fullname' />
<link-entity name='teammembership'
from='systemuserid'
to='systemuserid' >
<link-entity name='team'
from='teamid'
to='teamid'
link-type='inner'
alias='team'>
<attribute name='name' />
</link-entity>
</link-entity>
</entity>
</fetch>
Attributter
| Navn | Påkrævet? | Description |
|---|---|---|
name |
Ja | Det logiske navn på den relaterede tabel. |
to |
Nr. | Det logiske navn på kolonnen i det overordnede element , så det stemmer overens med den relaterede tabelkolonne, der er angivet i attributten from .
Selvom det ikke er teknisk påkrævet, bruges denne attribut normalt. |
from |
Nr. | Det logiske navn på kolonnen fra den relaterede tabel, der svarer til den kolonne, der er angivet i attributten to .
Selvom det ikke er teknisk påkrævet, bruges denne attribut normalt. |
alias |
Nr. | Repræsenterer navnet på den relaterede tabel. Hvis du ikke angiver et alias, oprettes der et for dig for at sikre, at alle kolonner har entydige navne, men du kan ikke bruge dette alias til at referere til linkobjektet i andre dele af XML-hentningen. De automatisk genererede aliaser bruger mønsteret {LogicalName}+{N}, hvor N er det sekventielle nummer for linkobjektet i XML-hentningen, der starter fra 1. |
link-type |
Nr. | Typen af brug af link. Standardfunktionsmåden er indre. Få mere at vide om indstillinger for linktyper |
intersect |
Nr. | Angiver, at link-entity bruges til at joinforbinde tabeller og ikke returnere nogen kolonner, typisk for en mange til mange-relation. Forekomsten af denne attribut ændrer ikke udførelsen af forespørgslen. Du kan føje denne attribut til din link-entity , når du joinforbinder en tabel, men ikke inkluderer nogen attributelementer for at vise, at dette er bevidst. |
Brug af from attributterne og to
Det er bedst at angive værdier for både attributterne from og to . Begge disse attributter bruges normalt til eksplicit at definere de kolonner, der skal matche. Attributterne from og to er dog ikke teknisk påkrævet.
Notat
Det er vigtigt, at de kolonner, der er angivet i attributterne
fromogto, er af samme type. Brug af forskellige kolonnetyper understøttes ikke. Når kolonnerne ikke er af samme type, kan Dataverse-infrastrukturen muligvis gennemtvinge en konvertering, men denne praksis kan resultere i en betydelig ydelsesstraf.Betydningen af attributterne
fromogtoi FetchXml er det modsatte af de tilsvarende egenskaber LinkEntity.LinkFromAttributeName og LinkEntity.LinkToAttributeName, der bruges til at oprette forespørgsler ved hjælp af QueryExpression.
Hvis du ikke bruger nogen af disse attributter, og der findes en system mange til mange-relation mellem de to tabeller, vælger Dataverse de relevante nøgleværdier ved hjælp af denne relation.
Hvis du kun angiver én af attributterne from eller to , forsøger Dataverse at finde ud af den korrekte relation ved hjælp af relationsskemadefinitionerne mellem de to tabeller.
Ellers får du vist følgende fejl:
Kodeks:
0x80041102
Budskab:No system many-to-many relationship exists between <table A> and <table B>. If attempting to link through a custom many-to-many relationship ensure that you provide the from and to attributes.
Begge disse forespørgsler bruger f.eks. teammembership_association mange til mange-relation mellem systembrugere og teamtabeller . I dette tilfælde kan Dataverse arbejde ud af attributterne from og to , som link-entity angiver, at intersect-tabellen ikke er nødvendig.
Angiv alle attributter
<fetch top="2">
<entity name="systemuser">
<attribute name="fullname" />
<link-entity
name="teammembership"
from="systemuserid"
to="systemuserid"
intersect="true"
>
<link-entity
name="team"
from="teamid"
to="teamid"
link-type="inner"
alias="team"
>
<attribute name="name" />
</link-entity>
</link-entity>
</entity>
</fetch>
Lad Dataverse vælge
<fetch top="2">
<entity name="systemuser">
<attribute name="fullname" />
<link-entity name="team" alias="team">
<attribute name="name" />
</link-entity>
</entity>
</fetch>
indstillinger for linktype
Bruges link-type til at anvende filtre på de returnerede poster. I følgende tabel beskrives de gyldige link-type værdier:
| Navn | Description |
|---|---|
inner |
Standard. Begrænser resultaterne til rækker med tilsvarende værdier i begge tabeller. |
outer |
Indeholder resultater fra det overordnede element, der ikke har en tilsvarende værdi. |
any |
Brug dette i et filterelement. Begrænser resultaterne til overordnede rækker med tilsvarende rækker i det sammenkædede objekt.
Få mere at vide om, hvordan du filtrerer any værdier i relaterede tabeller |
not any |
Brug dette i et filterelement. Begrænser resultaterne til overordnede rækker uden tilsvarende rækker i det sammenkædede objekt.
Få mere at vide om, hvordan du filtrerer not any værdier i relaterede tabeller |
all |
Brug dette i et filterelement. Begrænser resultaterne til overordnede rækker, hvor der findes rækker med tilsvarende from kolonneværdi i linkobjektet, men ingen af de tilsvarende rækker opfylder de ekstra filtre, der er defineret for dette linkobjekt. Du skal invertere de ekstra filtre for at finde overordnede rækker, hvor alle tilsvarende linkenhedsrækker opfylder nogle yderligere kriterier.
Få mere at vide om, hvordan du filtrerer all værdier i relaterede tabeller |
not all |
Brug dette i et filterelement. Begrænser resultaterne til overordnede rækker med tilsvarende rækker i det sammenkædede objekt. Denne linktype svarer til trods for any navnet.
Få mere at vide om, hvordan du filtrerer not all værdier i relaterede tabeller |
exists |
En variant af inner , der kan give ydeevnefordele. Bruger en EXISTS-betingelse i delsætningen where . Bruges, når flere kopier af den overordnede række ikke er nødvendige i resultaterne.
Få mere at vide om findes og i |
in |
En variant af inner , der kan give ydeevnefordele. Bruger en IN-betingelse i delsætningen where . Bruges, når flere kopier af den overordnede række ikke er nødvendige i resultaterne.
Få mere at vide om findes og i |
matchfirstrowusingcrossapply |
En variant af inner , der kan give ydeevnefordele. Brug denne type, når kun et enkelt eksempel på en tilsvarende række fra det sammenkædede objekt er tilstrækkeligt, og flere kopier af den overordnede række i resultaterne ikke er nødvendige.
Få mere at vide om matchfirstrowusingcrossapply |
Overordnede elementer
| Navn | Description |
|---|---|
| enhed | Angiver det underordnede element for et hentningselement, det 'overordnede objekt' for forespørgslen. Der må kun angives én enhed. |
| link-entity | Joinforbinder en tabel, der er relateret til objektet eller linkobjektet , for at returnere flere kolonner med resultatet. |
Underordnede elementer
| Navn | Forekomster | Description |
|---|---|---|
| all-attributes | 0 eller 1 | Angiver, at alle kolonneværdier, der ikke er null, for hver række returneres. Det er det samme som ikke at tilføje nogen attributelementer. Vi anbefaler ikke, at du bruger dette element i de fleste tilfælde. |
| attribut | 0 eller mange | Angiver en kolonne fra et objekt eller et linkobjekt, der skal returneres med en forespørgsel. |
| orden | 0 eller mange | Angiver en sorteringsrækkefølge for rækkerne i resultaterne. |
| link-entity | 0 eller mange | Joinforbinder en tabel, der er relateret til objektet eller linkobjektet , for at returnere flere kolonner med resultatet. |
| filter | 0 eller 1 | Angiv komplekse betingelser for et objekt eller et linkobjekt , der skal anvendes på en forespørgsel. |