共用方式為


群組聯結子句 (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 識別集合的任何值組合,以及 子句 子句子 Into 句中所識別的 Group Join 表達式。 如需 子句有效表達式 Into 的詳細資訊,請參閱 Aggregate 子句

作業 Group Join 會傳回運算子左邊 Group Join 所識別集合的所有結果。 即使集合中沒有相符專案,也是如此。 這就像在 SQL 中。LEFT OUTER JOIN

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

範例

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

另請參閱