Group Join 句 (Visual Basic)Group Join Clause (Visual Basic)

2 つのコレクションを、単一の階層コレクションに結合します。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  


用語Term 定義Definition
element 必須。Required. 結合するコレクションの制御変数。The control variable for the collection being joined.
type 省略可能です。Optional. element の型。The type of element. ない場合はtypeを指定の種類elementから推論されますcollectionします。If no type is specified, the type of element is inferred from collection.
collection 必須。Required. 左側にある上にあるコレクションと結合するコレクション、Group Join演算子。The collection to combine with the collection that is on the left side of the Group Join operator. AGroup Joinに句を入れ子にすることができます、Join句または別のGroup Join句。A Group Join clause can be nested in a Join clause or in another Group Join clause.
key1 Equals key2key1 Equals key2 必須。Required. 結合するコレクションのキーを識別します。Identifies keys for the collections being joined. 使用する必要があります、Equals結合されているコレクションからキーを比較する演算子。You must use the Equals operator to compare keys from the collections being joined. 使用して、結合条件を組み合わせることができます、And演算子を複数のキーを識別します。You can combine join conditions by using the And operator to identify multiple keys. key1の左側にあるコレクションからパラメーターがある必要があります、Join演算子。The key1 parameter must be from the collection on the left side of the Join operator. key2の右側にあるコレクションからパラメーターがある必要があります、Join演算子。The key2 parameter must be from the collection on the right side of the Join operator.

結合条件で使用されるキーは、コレクションの 1 つ以上の項目を含む式を指定できます。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.
expressionList 必須。Required. コレクションから要素のグループの集計方法を識別する 1 つまたは複数の式。One or more expressions that identify how the groups of elements from the collection are aggregated. グループ化した結果のメンバー名を識別するために使用して、Groupキーワード (<alias> = Group)。To identify a member name for the grouped results, use the Group keyword (<alias> = Group). グループに適用する集計関数を含めることもできます。You can also include aggregate functions to apply to the group.


Group Join句が結合されているコレクションからのキー値と一致する 2 つのコレクションを結合します。The Group Join clause combines two collections based on matching key values from the collections being joined. 結果のコレクションには、最初のコレクションからキー値に一致する 2 番目のコレクションから要素のコレクションを参照するメンバーを含めることができます。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. 2 番目のコレクションのグループ化された要素に適用する集計関数を指定することもできます。You can also specify aggregate functions to apply to the grouped elements from the second collection. 集計関数の詳細については、次を参照してください。 Aggregate 句します。For information about aggregate functions, see Aggregate Clause.

たとえば、マネージャーのコレクションと、従業員のコレクションに検討してください。Consider, for example, a collection of managers and a collection of employees. 両方のコレクションから要素では、特定の管理者に報告する従業員を識別する ManagerID プロパティがあります。Elements from both collections have a ManagerID property that identifies the employees that report to a particular manager. 結合操作の結果には、各マネージャーと従業員 ManagerID 値が一致する結果が含まれます。The results from a join operation would contain a result for each manager and employee with a matching ManagerID value. 結果、Group Join操作には、マネージャーの完全な一覧にが含まれます。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.

結果のコレクションをGroup Join操作がで識別されるコレクションからの値の任意の組み合わせを含めることができます、From句と、式で識別される、Intoの句、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. 有効な式の詳細については、Into句を参照してくださいAggregate 句します。For more information about valid expressions for the Into clause, see Aggregate Clause.

AGroup Join操作ではすべての結果を返しますの左側にある特定のコレクションから、Group Join演算子。A 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. これは似ています、 LEFT OUTER JOIN sql です。This is like a LEFT OUTER JOIN in SQL.

使用することができます、Join句を 1 つのコレクションをコレクションに結合します。You can use the Join clause to combine collections into a single collection. これに相当するINNER JOINsql です。This is equivalent to an INNER JOIN in SQL.


次のコード例では、2 つのコレクションを結合を使用して、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)

関連項目See also