聯結運算 (Visual Basic)

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

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

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

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

Two overlapping circles showing inner/outer.

方法

方法名稱 描述 Visual Basic 查詢運算式語法 相關資訊
聯結 根據索引鍵選取器函式聯結兩個序列並擷取值組。 From x In …, y In … Where x.a = y.a

-或-

Join … [As …]In … On …
Enumerable.Join

Queryable.Join
GroupJoin 根據索引鍵選取器函式聯結兩個序列,並為每個項目的相符結果進行分組。 Group Join … In … On … Enumerable.GroupJoin

Queryable.GroupJoin

另請參閱