2016-09-27 8 views
0

複数のテーブルから名前のリストが必要です。 Table A,Table B,Table C,Table D。 表A、B & Cには、表Dの列「ConsumerName」と共にリストに入れる必要がある1つの列「CompanyName」があります。すべてのテーブルから一意の値の列を1つだけ必要とするので、結合を使用せずにこれらのテーブルをすべて追加できますか?これは、ユーザー入力との比較に使用されます。任意のヘルプは高く評価されています:)複数の表から1つの列を1つのリストに結合するにはどうすればよいですか?

答えて

1

は、私はあなたが重複してのバージョンがある番目のUNIONの結果は、常にALL

UNION別個のものである

SELECT CompanyName from A 
UNION 
SELECT CompanyName from B 
UNION 
SELECT CompanyName from C 
UNION 
SELECT ConsumerName from D 

に参加する代わりに、UNIONをしたいと思います

0

コメントに提案を投稿しましたが、あなたの 'Distinct'条件を考慮していないため、コードが少し長くなりますので、回答を投稿します。

System.Linqへの参照が必要です.4つのテーブルの値が格納されていると仮定しています。

List<string> values = new List<string>(); 

values.AddRange(tableA.Select(ta => ta.CompanyName).ToList()); 

var tableBVals = tableB.Where(tb => !values.Contains(tb.CompanyName)).ToList(); 
values.AddRange(tableBVals); 

var tableCVals = tableC.Where(tc => !values.Contains(tc.CompanyName)).ToList(); 
values.AddRange(tableCVals); 

var tableDVals = tableD.Where(td => !values.Contains(td.ConsumerName)).ToList(); 
values.AddRange(tableDVals); 

私はあなたが望むよりも、その長いとメシエを実現するが、それはピンチで行います。

関連する問題