我需要多个表中的名称列表。 Table A
,Table B
,Table C
,Table D
。
表A,B& C有一列" CompanyName
"我需要将其与表D' ConsumerName
"一起放在一个列表中。因为我只需要来自所有表的一列不同值,是否可以在不使用连接的情况下将所有这些表添加到一起?这用于与用户输入进行比较。任何帮助表示赞赏:)
答案 0 :(得分:1)
我认为你想要一个UNION而不是一个连接
SELECT CompanyName from A
UNION
SELECT CompanyName from B
UNION
SELECT CompanyName from C
UNION
SELECT ConsumerName from D
UNION的结果总是不同的,带有重复项的版本是UNION ALL
答案 1 :(得分: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);
我意识到它比你想要的更长更乱,但它会在紧要关头。