共用方式為


Group Join 子句 (Visual Basic)

將兩個集合合併成單一階層式集合。 聯結作業是基於相符的索引鍵。

語法

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

組件

詞彙 定義
element 必要。 被聯結的集合的控制變數。
type 選擇性。 element 的類型。 如果未指定 type,則會從 collection 推斷 element 的類型。
collection 必要。 要與 Group Join 運算子左邊的集合合併的集合。 Group Join 子句可以內嵌於 Join 子句或另一個 Group Join 子句中。
key1 Equals key2 必要。 識別聯結集合的索引鍵。 您必須使用 Equals 運算子來比較聯結集合中的索引鍵。 您可以使用 And 運算子以識別多個索引鍵來合併聯結條件。 key1 參數必須來自 Join 運算子左邊的集合。 key2 參數必須來自 Join 運算子右邊的集合。

聯結條件中所使用索引鍵可以是包含集合中多個項目的運算式。 不過,每個索引鍵運算式只能包含其個別集合中的項目。
expressionList 必要。 識別集合中的元素群組是如何彙總的一或多個運算式。 若要識別分組結果的成員名稱,請使用 Group 關鍵字 (<alias> = Group)。 您也可以包含將套用至群組的彙總函式。

備註

Group Join 子句會根據聯結集合中的相符索引鍵值來合併兩個集合。 產生的集合可能包含一個成員,該成員參考了第二個集合中與第一個集合的索引鍵值相符的元素集合。 您也可以指定要套用至第二個集合中分組元素的彙總函式。 如需彙總函式的相關資訊,請參閱 Aggregate 子句

例如,請考慮經理集合和員工集合。 這兩個集合中的元素都有一個 ManagerID 屬性,該屬性識別了向特定經理報告的員工。 聯結作業的結果將包含每個具有對應 ManagerID 值的經理和員工的結果。 Group Join 作業的結果將包含完整的經理清單。 每個經理的結果都將包含一個成員,該成員參考了與特定經理對應的員工清單。

Group Join 作業所產生的集合可包含 From 子句所識別之集合中以及 Group Join 子句的子句 Into 所識別之運算式中的任何值組合。 如需 Into 子句之有效運算式的詳細資訊,請參閱 Aggregate 子句

Group Join 作業會傳回 Group Join 運算子左邊所識別之集合中的所有結果。 即使在被聯結的集合中沒有對應項,也是如此。 這類似於 SQL 中的 LEFT OUTER JOIN

您可以使用 Join 子句,將集合合併成單一集合。 這相當於 SQL 中的 INNER JOIN

範例

下列程式碼範例會使用 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

另請參閱