如何连接两个表与LINQ sql中具有不同值的一个表?
问题描述:
我有两个表emp_details
其中i有emp_id
,emp_name
和emp_addresss
为列和另一表emp_hierarcy
其中i有emp_id
,emp_mgid
与相同emp_id
多个行。如何连接两个表与LINQ sql中具有不同值的一个表?
我想编写一个linq查询,即将emp_id
上的两个表与emp_hierarcy
中不同的emp_id连接起来。我知道如何连接表中SQLSERVER和我在SQLSERVER
SELECT
DISTINCT
eh.emp_id
FROM
emp_details ed
LEFT OUTER JOIN emp_hierarcy eh ON ed.emp_id = eh.emp_id
我能只emp_id
如何让LINQ查询所有细节打印返回此查询?
答
(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)
答
选择你感兴趣的所有字段:
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);
...
}
看看这个:https://*.com/questions/ 2767709/C锋利加入-其中与 - LINQ和 - 拉姆达。为了得到不同的值,'enumerable'应该有'Distinct'方法。 – Xedni
你在使用实体框架吗?如果您使用导航属性,则通常不需要在Linq-to-Entities中执行JOIN。 – Dai
看看GROUP BY,以及如何在Linq中做到这一点。 –