結合演算

更新 : 2007 年 11 月

2 つのデータ ソースの結合とは、あるデータ ソースのオブジェクトを、共通の属性を共有する別のデータ ソースのオブジェクトと関連付けることです。

相互に直接の関連がない 2 つのデータ ソースを対象とするクエリにおいて、結合は重要な操作になります。オブジェクト指向プログラミングでは、これは一方向の関係における逆の方向など、モデル化されていないオブジェクト間の相関関係を意味する場合があります。一方向の関係の例として、City 型のプロパティを持つ Customer クラスがあるとします。ただし、City クラスには、Customer オブジェクトのコレクションを表すプロパティはありません。City オブジェクトのリストから各都市のすべての顧客を取得する場合は、結合演算を使用して顧客を検索できます。

LINQ フレームワークに用意されている結合メソッドは、Join および GroupJoin です。この 2 つのメソッドは、等結合 (キーが等しいかどうかに基づいて 2 つのデータ ソースを対応させる結合) を実行します (比較に関して、Transact-SQL では、"小なり" 演算子などの "等値" 以外の結合演算子もサポートされます)。リレーショナル データベース用語で説明すると、Join は内部結合 (両方のデータ セットで一致するオブジェクトだけが返される結合) を実装します。GroupJoin メソッドは、リレーショナル データベース用語で直接相当するものはありませんが、内部結合と左外部結合のスーパーセットを実装します。左外部結合とは、最初 (左側) のデータ ソースの各要素を返す結合です。これらの要素は、もう一方のデータ ソースに相関関係を持つ要素がなくても返されます。

次の図は、2 つのセットと、内部結合または左外部結合としてこれらのセットに含まれている要素の概念図を示しています。

内側/外側を示す 2 つの重なり合う円。

メソッド

メソッド名

説明

C# のクエリ式の構文

Visual Basic のクエリ式の構文

詳細情報

Join

キー セレクタ関数に基づいて 2 つのシーケンスを結合し、値のペアを抽出します。

join … in … on … equals …

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

または

Join … [As …]In … On …

Enumerable.Join

Queryable.Join

GroupJoin

キー セレクタ関数に基づいて 2 つのシーケンスを結合し、各要素について結果として得られる一致をグループ化します。

join … in … on … equals … into …

Group Join … In … On …

Enumerable.GroupJoin

Queryable.GroupJoin

結合演算の実行方法に関する詳細情報

Topic Location
方法 : 異種ファイルのコンテンツを結合する (LINQ) 統合言語クエリ (LINQ: Language-Integrated Query)
方法 : 複数のソースからオブジェクト コレクションにデータを設定する (LINQ) 統合言語クエリ (LINQ: Language-Integrated Query)
方法 : 左外部結合を実行する (C# プログラミング ガイド) C# プログラマーズ リファレンス
方法 : グループ化結合を実行する (C# プログラミング ガイド) C# プログラマーズ リファレンス
方法 : 複合キーを使用して結合する (C# プログラミング ガイド) C# プログラマーズ リファレンス
join 句 (C# リファレンス) C# プログラマーズ リファレンス
方法 : join 句の結果の順序を指定する (C# プログラミング ガイド) C# プログラマーズ リファレンス
方法 : カスタム結合操作を実行する (C# プログラミング ガイド) C# プログラマーズ リファレンス
方法 : 内部結合を実行する (C# プログラミング ガイド) C# プログラマーズ リファレンス
方法 : 左外部結合を実行する (C# プログラミング ガイド) dv_csref
方法 : グループ化結合を実行する (C# プログラミング ガイド) dv_csref
方法 : 複合キーを使用して結合する (C# プログラミング ガイド) dv_csref
join 句 (C# リファレンス) dv_csref
方法 : join 句の結果の順序を指定する (C# プログラミング ガイド) dv_csref
方法 : カスタム結合操作を実行する (C# プログラミング ガイド) dv_csref
方法 : 内部結合を実行する (C# プログラミング ガイド) dv_csref
方法 : 異種ファイルのコンテンツを結合する (LINQ) dv_Linq
方法: 複数のソースからオブジェクト コレクションにデータを設定する (LINQ) dv_Linq
方法 : 異種ファイルのコンテンツを結合する (LINQ) dv_Linq
方法: 複数のソースからオブジェクト コレクションにデータを設定する (LINQ) dv_Linq
方法 : 左外部結合を実行する (C# プログラミング ガイド) dv_csref
方法 : グループ化結合を実行する (C# プログラミング ガイド) dv_csref
方法 : 複合キーを使用して結合する (C# プログラミング ガイド) dv_csref
join 句 (C# リファレンス) dv_csref
方法 : join 句の結果の順序を指定する (C# プログラミング ガイド) dv_csref
方法 : カスタム結合操作を実行する (C# プログラミング ガイド) dv_csref
方法 : 内部結合を実行する (C# プログラミング ガイド) dv_csref

参照

処理手順

方法 : 結合およびクロス積クエリを作成する (LINQ to SQL)

概念

標準クエリ演算子の概要

匿名型

結合の種類

参照

System.Linq

匿名型 (C# プログラミング ガイド)