共用方式為


聯結作業

兩個資料來源的 「聯結」(Join),就是某個資料來源中的物件,和另一個資料來源中共用通用屬性的物件的關聯。

對於不能直接追蹤目標資料來源彼此之間的關聯性的查詢而言,聯結是很重要的作業。 在物件導向的程式設計中,這可能表示物件之間的相互關聯沒有模組化,例如單向關聯性的返回方向。 一個單向關聯性的範例是「客戶」類別,其具有類型「城市」的屬性,但「城市」類別沒有「客戶」物件集合的屬性。 若您有「城市」物件清單,且您想要尋找每個城市中的所有客戶,您就可以使用聯結作業來尋找客戶。

LINQ 架構中提供的聯結方法為 Join``4GroupJoin``4。這些方法會執行等聯結 (equijoins),或是執行根據其索引鍵相等與否配對兩個資料來源的聯結。 (相較下,Transact-SQL 支援「等於」運算子以外的聯結運算子,例如「小於」運算字)。在關聯式資料庫堆規定中,Join``4 會實作內部聯結,在這種聯結中,只會傳回在其他資料集中有相符項目的物件。 GroupJoin``4 方法不直接等同於關聯式資料庫規定,而會實作內部聯結及左外部聯結的超集。左外部聯結是傳回第一個 (左) 資料來源中每個項目的聯結 (即使其在其他資料來源中沒有相互關聯的項目)。

以下概念圖示範兩個集合,以及兩個集合中包含在內部聯結或左外部聯結中的項目。

顯示內部/外部的兩個重疊圓形。

方法

方法名稱

描述

C# 查詢運算式語法

Visual Basic 查詢運算式語法

詳細資訊

Join

根據索引鍵選取器函式聯結兩個序列並擷取值組。

join … in … on … equals …

From x In …, y In … Where x.a = y.a

-或-

Join … [As …]In … On …

Enumerable.Join``4

Queryable.Join``4

GroupJoin

根據索引鍵選取器函式聯結兩個序列,並為每個項目的相符結果進行分組。

join … in … on … equals … into …

Group Join … In … On …

Enumerable.GroupJoin``4

Queryable.GroupJoin``4

請參閱

工作

制定聯結和叉積查詢

如何:使用複合索引鍵執行聯結 (C# 程式設計手冊)

如何:從不同的檔案聯結內容 (LINQ)

如何:排序 Join 子句的結果 (C# 程式設計手冊)

如何:執行自訂聯結作業 (C# 程式設計手冊)

如何:執行群組聯結 (C# 程式設計手冊)

如何:執行內部聯結 (C# 程式設計手冊)

如何:執行左外部聯結 (C# 程式設計手冊)

如何:從多個來源填入物件集合 (LINQ)

參考

System.Linq

匿名類型 (C# 程式設計手冊)

join 子句 (C# 參考)

Join 子句 (Visual Basic)

概念

標準查詢運算子概觀

匿名類型 (Visual Basic)