Condividi tramite


Clausola Group Join (Visual Basic)

Combina due insiemi in un unico insieme gerarchico. L'operazione di join è basata sulla corrispondenza di chiavi.

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

Parti

Argomento

Definizione

element

Obbligatoria. La variabile di controllo per l'insieme da unire.

type

Facoltativo. Tipo di element. Se non è specificato alcun type, il tipo di element viene dedotto da collection.

collection

Obbligatorio. L'insieme da combinare con l'insieme sul lato sinistro dell'operatore Group Join. Una clausola Group Join può essere annidata in una clausola Join o in un'altra clausola Group Join.

key1 Equals key2

Obbligatorio. Identifica le chiavi per gli insiemi da unire. È necessario utilizzare l'operatore Equals per confrontare le chiavi dagli insiemi da unire. È possibile combinare condizioni di join utilizzando l'operatore And per identificare più chiavi. Il parametro key1 deve provenire dall'insieme sul lato sinistro dell'operatore Join. Il parametro key2 deve provenire dall'insieme sul lato destro dell'operatore Join.

Le chiavi utilizzate nella condizione di join possono essere espressioni che includono più di un elemento dell'insieme. Tuttavia ogni espressione di chiave può contenere solo elementi del rispettivo insieme.

expressionList

Obbligatorio. Una o più espressioni che identificano come vengono aggregati i gruppi di elementi dell'insieme. Per identificare un nome di membro per i risultati raggruppati, utilizzare la parola chiave Group (<alias> = Group). È anche possibile includere funzioni di aggregazione da applicare al gruppo.

Note

La clausola Group Join combina due insiemi in base ai valori chiave corrispondenti degli insiemi da unire. L'insieme risultante può contenere un membro che fa riferimento a un insieme di elementi dal secondo insieme che corrispondono al valore della chiave del primo insieme. È anche possibile specificare funzioni di aggregazione da applicare agli elementi raggruppati del secondo insieme. Per ulteriori informazioni sulle funzioni di aggregazione, vedere Clausola Aggregate (Visual Basic).

Si consideri, ad esempio, un insieme di amministratori e un insieme di dipendenti. Gli elementi di entrambi gli insiemi hanno una proprietà ManagerID che identifica i dipendenti che riportano a un particolare amministratore. I risultati di un'operazione di join conterrebbero un risultato per ogni amministratore e ogni dipendente con valore corrispondente di ManagerID. I risultati di un'operazione Group Join conterrebbero l'elenco completo degli amministratori. Ogni amministratore nel risultato avrebbe un membro che fa riferimento all'elenco dei dipendenti che hanno una corrispondenza con lo specifico amministratore.

L'insieme risultante per un'operazione Group Join può contenere qualsiasi combinazione dei valori dell'insieme identificato nella clausola From e delle espressioni identificate nella clausola Into della clausola Group Join. Per ulteriori informazioni sulle espressioni valide per la clausola Into, vedere Clausola Aggregate (Visual Basic).

Un'operazione Group Join restituirà tutti i risultati dell'insieme identificato sul lato sinistro dell'operatore Group Join Questo si verifica anche se non esistono corrispondenze tra gli insiemi da unire. Equivale a LEFT OUTER JOIN in SQL.

È possibile utilizzare la clausola Join per combinare più insiemi in un unico insieme. Equivale ad un INNER JOIN in SQL.

Esempio

Nell'esempio di codice seguente vengono uniti due insiemi utilizzando la clausola Group Join.

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 anche

Riferimenti

Clausola Select (Visual Basic)

Clausola From (Visual Basic)

Clausola Join (Visual Basic)

Clausola Where (Visual Basic)

Clausola Group By (Visual Basic)

Concetti

Introduzione a LINQ in Visual Basic

Altre risorse

Query (Visual Basic)