Clausola Group Join (Visual Basic)Group Join Clause (Visual Basic)

Combina due raccolte in un'unica raccolta gerarchica.Combines two collections into a single hierarchical collection. L'operazione di join è basata sulle chiavi corrispondenti.The join operation is based on matching keys.

SintassiSyntax

Group Join element [As type] In collection _  
  On key1 Equals key2 [ And key3 Equals key4 [... ] ] _  
  Into expressionList  

PartiParts

TermineTerm DefinizioneDefinition
element Obbligatoria.Required. Variabile di controllo per la raccolta da unire in join.The control variable for the collection being joined.
type Facoltativa.Optional. Tipo di element.The type of element. Se non viene specificato alcun type, il tipo di element viene dedotto da collection.If no type is specified, the type of element is inferred from collection.
collection Obbligatoria.Required. Raccolta da combinare con la raccolta che si trova sul lato sinistro dell'operatore di Group Join.The collection to combine with the collection that is on the left side of the Group Join operator. Una clausola Group Join può essere annidata in una clausola Join o in un'altra clausola Group Join.A Group Join clause can be nested in a Join clause or in another Group Join clause.
key1 Equals key2key1 Equals key2 Obbligatoria.Required. Identifica le chiavi per le raccolte da unire in join.Identifies keys for the collections being joined. È necessario utilizzare l'operatore Equals per confrontare le chiavi delle raccolte da unire in join.You must use the Equals operator to compare keys from the collections being joined. È possibile combinare le condizioni di join usando l'operatore And per identificare più chiavi.You can combine join conditions by using the And operator to identify multiple keys. Il key1 parametro deve provenire dalla raccolta sul lato sinistro dell'operatore Join.The key1 parameter must be from the collection on the left side of the Join operator. Il key2 parametro deve essere dalla raccolta sul lato destro dell'operatore Join.The key2 parameter must be from the collection on the right side of the Join operator.

Le chiavi utilizzate nella condizione di join possono essere espressioni che includono più di un elemento della raccolta.The keys used in the join condition can be expressions that include more than one item from the collection. Ogni espressione chiave può tuttavia contenere solo elementi della rispettiva raccolta.However, each key expression can contain only items from its respective collection.
expressionList Obbligatoria.Required. Una o più espressioni che identificano la modalità di aggregazione dei gruppi di elementi della raccolta.One or more expressions that identify how the groups of elements from the collection are aggregated. Per identificare un nome di membro per i risultati raggruppati, usare la parola chiave Group (<alias> = Group).To identify a member name for the grouped results, use the Group keyword (<alias> = Group). È anche possibile includere funzioni di aggregazione da applicare al gruppo.You can also include aggregate functions to apply to the group.

NoteRemarks

La clausola Group Join combina due raccolte in base ai valori di chiave corrispondenti delle raccolte da unire in join.The Group Join clause combines two collections based on matching key values from the collections being joined. La raccolta risultante può contenere un membro che fa riferimento a una raccolta di elementi della seconda raccolta che corrispondono al valore della chiave della prima raccolta.The resulting collection can contain a member that references a collection of elements from the second collection that match the key value from the first collection. È inoltre possibile specificare le funzioni di aggregazione da applicare agli elementi raggruppati della seconda raccolta.You can also specify aggregate functions to apply to the grouped elements from the second collection. Per informazioni sulle funzioni di aggregazione, vedere clausola Aggregate.For information about aggregate functions, see Aggregate Clause.

Si consideri, ad esempio, una raccolta di Manager e una raccolta di dipendenti.Consider, for example, a collection of managers and a collection of employees. Gli elementi di entrambe le raccolte hanno una proprietà ManagerID che identifica i dipendenti che riferiscono a un particolare responsabile.Elements from both collections have a ManagerID property that identifies the employees that report to a particular manager. I risultati di un'operazione di join contengono un risultato per ogni responsabile e dipendente con un valore ManagerID corrispondente.The results from a join operation would contain a result for each manager and employee with a matching ManagerID value. I risultati di un'operazione di Group Join contengono l'elenco completo dei Manager.The results from a Group Join operation would contain the complete list of managers. Ogni risultato di gestione avrà un membro che fa riferimento all'elenco di dipendenti che corrispondevano al responsabile specifico.Each manager result would have a member that referenced the list of employees that were a match for the specific manager.

La raccolta risultante da un'operazione di Group Join può contenere qualsiasi combinazione di valori della raccolta identificata nella clausola From e le espressioni identificate nella clausola Into della clausola Group Join.The collection resulting from a Group Join operation can contain any combination of values from the collection identified in the From clause and the expressions identified in the Into clause of the Group Join clause. Per ulteriori informazioni sulle espressioni valide per la clausola Into, vedere clausola Aggregate.For more information about valid expressions for the Into clause, see Aggregate Clause.

Un'operazione di Group Join restituirà tutti i risultati della raccolta identificata sul lato sinistro dell'operatore Group Join.A Group Join operation will return all results from the collection identified on the left side of the Group Join operator. Questo vale anche se non sono presenti corrispondenze nella raccolta da unire in join.This is true even if there are no matches in the collection being joined. Questa operazione è simile a una LEFT OUTER JOIN in SQL.This is like a LEFT OUTER JOIN in SQL.

È possibile usare la clausola Join per combinare le raccolte in un'unica raccolta.You can use the Join clause to combine collections into a single collection. Equivale a un INNER JOIN in SQL.This is equivalent to an INNER JOIN in SQL.

EsempioExample

L'esempio di codice seguente unisce due raccolte usando la clausola Group Join.The following code example joins two collections by using the 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

Vedere ancheSee also