Élément Join (View)

S’applique à : | SharePoint 2016 SharePoint Foundation 2013 | | SharePoint Online SharePoint Server 2013

Utilisé pour effectuer une jointure de deux listes pour des requêtes.

<Join   Type= "LEFT" | "INNER"  ListAlias= "TEXT"></Join>

Éléments et attributs

Les sections suivantes décrivent les attributs, les éléments enfants et les éléments parents.

Attributs

Attribut Description
Type
Obligatoire. « LEFT » signifie une jointure externe gauche. « INNER » signifie une jointure interne.
ListAlias
Facultatif. Spécifie un nom secondaire pour la liste étrangère. Ceci peut être utile lorsqu’il y a deux jointures avec la même liste. Des alias différents sont nécessaires pour différencier les jointures.

Il n’est pas nécessaire de mapper explicitement l’alias sur le nom réel de la liste étrangère, car les jointures sont autorisées uniquement par le biais d’une relation de champ de recherche, et la liste étrangère est spécifiée dans la définition du champ Recherche.

Une fois cette valeur définie dans un élément Join, elle est utilisée en tant que valeur d’un attribut List à deux endroits :
- Dans un élément FieldRef qui est un enfant de l’élément Eq de l’élément Join .
- Dans un élément Field qui est un enfant d’un élément ProjectedFields .

Éléments enfants

Éléments parents

Occurrences

  • Minimum : 1
  • Maximum : valeur de la propriété MaxQueryLookupFields pour l’objet SPWebApplication qui contient la liste principale en cours d’interrogation. La valeur par défaut du système est 8.

Remarques

L’élément Join est traduit dans l’instruction SQL JOIN. L’élément Join refactorise l’élément Eq pour spécifier le champ principal et le champ étranger sur lesquels effectuer la jointure. Le champ principal doit être défini en tant que champ de recherche pour le champ étranger.

Exemple

Voici un exemple de deux éléments Join ; ils sont tous les deux des jointures externes gauches. CustomerName est un champ de recherche sur une liste Orders. Il recherche le champ ID d’une liste Customers. La liste Customer a à son tour un champ CityName qui est un champ de recherche pour une liste Cities.

Le premier élément Join affecte 'customers' en tant qu’alias pour la liste Customers. L’enfant de l’élément Eq définit la jointure en utilisant les mêmes champs source et cible qui constituent la relation de recherche. Le deuxième élément Join attribue « customerCities » en tant qu’alias à la liste Cities. Il définit la jointure parallèlement à la relation de recherche existante entre les listes Customer et Cities.

Les alias sont utiles pour les listes car il peut exister plusieurs jointures sur la même liste et des alias différents sont alors nécessaires pour différencier les jointures. Par exemple, en plus des jointures de Orders avec Customer et de Customer avec Cities, il pourrait également y avoir des jointures de Orders avec Suppliers et de Suppliers avec Cities. Dans le cas de la dernière jointure, un alias différent, par exemple « supplierCities », est attribué à la liste des villes de celui utilisé pour la jointure Client à Villes.

<Joins>
  <Join Type='LEFT' ListAlias='customers'>
    <Eq>
      <FieldRef Name='CustomerName' RefType='Id' />
      <FieldRef List='customers' Name='ID' />
    </Eq>
  </Join>
  <Join Type='LEFT' ListAlias='customerCities'>
    <Eq>
      <FieldRef List='customers' Name='CityName' RefType='Id' />
      <FieldRef List='customerCities' Name='ID' />
    </Eq>
  </Join>
</Joins>