これをクエリする最適化された方法を考え出そうとしているので、これはしばらくの間私を悩ませてきました。
したがって、共通の列を共有する 3 つの相互参照テーブルがあるとします。その共通の列は、より多くの情報を含むメイン テーブルで最終的な結合を行います。
例えば:
私が次のものを持っているとしましょう:
Customers //properties: ID, Name, Address
IEnumberable<CustomerSports> //properties: CustomerID, SportsID
IEnumberable<CustomerLocation> //properties: CustomerID, LocationID
IEnumberable<CustomerPets> //properties: CustomerID, PetsID
したがって、次のようなクエリを作成できます。
ニューヨーク (CustomerLocation) に住んでいて、ラクロス、フットボール、サッカー (CustomerSports) をしていて、犬や猫を飼っている (CustomerPets) 顧客のリストを教えてください。ルックアップ テーブルは null 許容にできるため、顧客はスポーツをすることができますが、ペットは飼っていません。
次に、顧客のリストを取得したら、顧客テーブルの共通列 (CustomerID) を結合して、ID、名前、および住所を取得します。
ルックアップごとに顧客テーブルを結合し、ユニオンを実行して顧客のリストを取得することを考えていましたが、それが正しい方法であるかどうかはわかりません。