Combines two collections into a single hierarchical collection. The join operation is based on matching keys.
Group Join element [As type] In collection _ On key1 Equals key2 [ And key3 Equals key4 [... ] ] _ Into expressionList
||Required. The control variable for the collection being joined.|
||Optional. The type of
||Required. The collection to combine with the collection that is on the left side of the
||Required. Identifies keys for the collections being joined. You must use the
The keys used in the join condition can be expressions that include more than one item from the collection. However, each key expression can contain only items from its respective collection.
||Required. One or more expressions that identify how the groups of elements from the collection are aggregated. To identify a member name for the grouped results, use the
Group Join clause combines two collections based on matching key values from the collections being joined. 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. You can also specify aggregate functions to apply to the grouped elements from the second collection. For information about aggregate functions, see Aggregate Clause.
Consider, for example, a collection of managers and a collection of employees. Elements from both collections have a ManagerID property that identifies the employees that report to a particular manager. The results from a join operation would contain a result for each manager and employee with a matching ManagerID value. The results from a
Group Join operation would contain the complete list of managers. Each manager result would have a member that referenced the list of employees that were a match for the specific manager.
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. For more information about valid expressions for the
Into clause, see Aggregate Clause.
Group Join operation will return all results from the collection identified on the left side of the
Group Join operator. This is true even if there are no matches in the collection being joined. This is like a
LEFT OUTER JOIN in SQL.
You can use the
Join clause to combine collections into a single collection. This is equivalent to an
INNER JOIN in SQL.
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