Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Combine deux collections en une seule collection hiérarchique. L’opération de jointure est basée sur des clés correspondantes.
Syntaxe
Group Join element [As type] In collection _
On key1 Equals key2 [ And key3 Equals key4 [... ] ] _
Into expressionList
Pièces
Terme | Définition |
---|---|
element |
Obligatoire. Variable de contrôle pour la collection jointe. |
type |
Optionnel. Type de element . Si aucun n’est type spécifié, le type de element données est déduit de collection . |
collection |
Obligatoire. Collection à combiner avec la collection qui se trouve sur le côté gauche de l’opérateur Group Join . Une Group Join clause peut être imbriquée dans une Join clause ou dans une autre Group Join clause. |
key1
Equals
key2
|
Obligatoire. Identifie les clés des collections jointes. Vous devez utiliser l’opérateur Equals pour comparer les clés des collections jointes. Vous pouvez combiner des conditions de jointure à l’aide de l’opérateur And pour identifier plusieurs clés. Le key1 paramètre doit provenir de la collection sur le côté gauche de l’opérateur Join . Le key2 paramètre doit provenir de la collection sur le côté droit de l’opérateur Join .Les clés utilisées dans la condition de jointure peuvent être des expressions qui incluent plusieurs éléments de la collection. Toutefois, chaque expression clé ne peut contenir que des éléments de sa collection respective. |
expressionList |
Obligatoire. Une ou plusieurs expressions qui identifient la façon dont les groupes d’éléments de la collection sont agrégés. Pour identifier un nom de membre pour les résultats groupés, utilisez le Group mot clé (<alias> = Group ). Vous pouvez également inclure des fonctions d’agrégation à appliquer au groupe. |
Remarques
La Group Join
clause combine deux collections en fonction des valeurs de clé correspondantes des collections jointes. La collection résultante peut contenir un membre qui fait référence à une collection d’éléments de la deuxième collection qui correspondent à la valeur de clé de la première collection. Vous pouvez également spécifier des fonctions d’agrégation à appliquer aux éléments groupés de la deuxième collection. Pour plus d’informations sur les fonctions d’agrégation, consultez Clause d’agrégation.
Prenons, par exemple, une collection de gestionnaires et une collection d’employés. Les éléments des deux collections ont une propriété ManagerID qui identifie les employés qui signalent à un responsable particulier. Les résultats d’une opération de jointure contiennent un résultat pour chaque responsable et employé avec une valeur ManagerID correspondante. Les résultats d’une Group Join
opération contiennent la liste complète des gestionnaires. Chaque résultat du responsable aurait un membre qui a référencé la liste des employés qui étaient une correspondance pour le responsable spécifique.
La collection résultant d’une Group Join
opération peut contenir n’importe quelle combinaison de valeurs de la collection identifiée dans la From
clause et les expressions identifiées dans la Into
clause de la Group Join
clause. Pour plus d’informations sur les expressions valides pour la Into
clause, consultez Clause d’agrégation.
Une Group Join
opération retourne tous les résultats de la collection identifiée sur le côté gauche de l’opérateur Group Join
. Cela est vrai même s’il n’y a aucune correspondance dans la collection jointe. C’est comme dans LEFT OUTER JOIN
SQL.
Vous pouvez utiliser la Join
clause pour combiner des collections en une seule collection. Il s’agit d’un INNER JOIN
équivalent dans SQL.
Exemple :
L’exemple de code suivant joint deux collections à l’aide de la Group Join
clause.
Dim customerList = From cust In customers
Group Join ord In orders On
cust.CustomerID Equals ord.CustomerID
Into CustomerOrders = Group,
OrderTotal = Sum(ord.Total)
Select cust.CompanyName, cust.CustomerID,
CustomerOrders, OrderTotal
For Each customer In customerList
Console.WriteLine(customer.CompanyName &
" (" & customer.OrderTotal & ")")
For Each order In customer.CustomerOrders
Console.WriteLine(vbTab & order.OrderID & ": " & order.Total)
Next
Next