具有Linq-to-SQL等效子查询的SQL查询

时间:2012-11-13 15:52:23

标签: sql-server linq linq-to-sql

我再次重写我的问题,我没有以正确的方式公开,抱歉。

我有这个SQL查询:

SELECT T1.*, T2.documentNumber
FROM TABLE1 T1      
LEFT JOIN TABLE2 T2 ON      
    T2.documentNumber = (
        SELECT TOP 1 documentNumber         
        FROM TABLE2  
        WHERE description = T1.description)                                     
WHERE T1.color = 'RED';

我需要检索T1中按颜色过滤的所有行,其中包含相应的T2.documentNumber值,但唯一T1行,我的意思是1到1的关系{{1 }}。

T2T1通过T2列相关联。由于description中的description不是唯一的,因此此表可以包含具有相同描述的N行,因为每个t2行只需要1行,我得到前1个过滤通过唯一列(T1)。

这个查询对我来说很好,希望我需要知道是Linq-to-SQL的等价物,我试了好几个小时但没有成功。可以请有人帮助我吗?

1 个答案:

答案 0 :(得分:2)

尝试

var result = table1.Where(t1 => t1.color == "RED")
                   .GroupJoin(table2,
                              t1 => t1.description,
                              t2 => t2.description,
                              (t1,g) => new {
                                              T1 = t1,
                                              DocumentNumber = g.FirstOrDefault()
                                             });

必填101链接:http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b应该有助于处理这类查询......

相关问题