2017-08-31 11 views
0

I iは、列iが同じemp_idと複数の行とemp_idemp_mgidを有する別のテーブルemp_hierarcyとしてemp_idemp_nameemp_addresssを持つ2つのテーブルemp_detailsを有します。LINQ sqlで異なる値を持つ1つのテーブルを持つ2つのテーブルを結合する方法は?

linqクエリを書いています。つまり、の2つのテーブルと、別のemp_idがemp_hierarcyの2つのテーブルを結合したいとします。私は、のSQLServerでテーブルを結合する方法を知っていると私はLINQクエリ内のすべての詳細を取得するだけemp_idどのように印刷することができるよ

SELECT 
    DISTINCT 
    eh.emp_id 
FROM 
    emp_details ed 
    LEFT OUTER JOIN emp_hierarcy eh ON ed.emp_id = eh.emp_id 

のSQLServer

でこのクエリを返すがありますか?

また
+0

は、このを見てみましょう:https://stackoverflow.com/questions/ 2767709/c-sharp-joins-linq-and-lambdaがある場所。明確な値を得るために、 'enumerable'は' Distinct'メソッドを持たなければなりません。 – Xedni

+0

Entity Frameworkを使用していますか? Navigation Propertiesを使用する場合は、Linq-to-EntitiesでJOINを実行する必要はありません。 – Dai

+0

GROUP BYを見て、Linqでそれを行う方法。 –

答えて

0
(from a in emp_details 
       join b in emp_hierarcy on a.emp_id equals b.emp_id 
       select new 
       { 
       emp_id = a.emp_id 
       }).Distinct(); 

あなたが試すことができ、中に

(from a in emp_details 
       join b in emp_hierarcy on a.emp_id equals b.emp_id 
       select new 
       { 
       emp_id = a.emp_id 
       }).DistinctBy(c => c.emp_id) 
+0

に新しい例を教えてもらえますか?これは私が試したものですが、emp_idの内容しか表示しないので、emp_name、emp_addressなどの詳細はどうやって得るのですか? 私はすべての詳細を印刷する必要があります。 – Suhas

+0

選択したいフィールドをすべて選択してください –

+0

申し訳ありませんが、そのコードは試しましたが、動作しません。 – Suhas

0

あなたが興味を持っているすべてのフィールドを選択します。

var items = (from a in emp_details 
      join b in emp_hierarcy on a.emp_id equals b.emp_id 
      select new 
      { 
       emp_id = a.emp_id, 
       emp_name = a.emp_name, 
       emp_address = a.emp_address, 
       emp_mgid = b.emp_mgid 
      }).Distinct(); 

foreach(var item in items) 
{ 
    Console.WriteLine(item.emp_address); 
    ... 
} 
関連する問題