当前位置: 首页 > 面试题库 >

如何在sql中使用的linq中使用Left join?

曹旭
2023-03-14
问题内容

如何在编写SQL查询的Linq中使用左联接?

select 
    p.Name, p.Family,
    E.EmployTypecode, E.employtypeName, E.EmplytyppeTye 
from 
    personnel as p
left join 
    Employee as E on E.EmployTypecode = p.EmployTypecode

问题答案:

使用Join关键字而不是Left join,并且必须使用“ INTO”关键字和“ DefaultIfEmpty()”方法,因为右表将返回空值。

   var query = from p in personnel 
               join e in Employee on p.EmployTypecode equals e.EmployTypecode into t
               from nt in t.DefaultIfEmpty()
               orderby p.Name

    select new
    {
        p.Name, p.Family,
        EmployTypecode=(int?)nt.EmployTypecode,  // To handle null value if Employtypecode is specified as not null in Employee table.
        nt.employtypeName, nt.EmplytyppeTye
    }.ToList();


 类似资料:
  • 问题内容: 我有一个查询,看起来像这样: 我知道,将其转换为SQL时会使用a,但如果将其转换为`LIKE'%jon〜%gmail.com%’。〜转义中间的通配符%。我该如何解决?我需要能够将通配符放入LINQ to EF搜索中。 问题答案: 我不知道这是可能直接与LINQ,因为你可以调用像只有基本的字符串函数,或。使用EntitySQL是可能的,因此您可以组合使用这些方法。 ESQL注入反击:)

  • 问题内容: 例如,我有4000行,并且定义了X限制。 找到X行后查询停止?还是查询找到所有行,然后从找到的行中获取X行? 谢谢你。 问题答案: 从MySQL参考手册: 如果您将LIMIT row_count与ORDER BY一起使用,MySQL会在找到排序结果的前row_count行后立即结束排序,而不是对整个结果进行排序。如果通过使用索引进行排序,这将非常快。如果必须完成文件排序,则必须先选择所

  • 问题内容: 我的数据库表有一个Timestamp列,我正在使用LINQ进行插入,更新SQL数据库中的数据。现在我想在数据库中添加时间戳值,但我不知道如何? 我在网上看到各种示例,他们没有为将值自动插入到插入数据中的数据库中编写任何用于插入值的代码。虽然我在表中看到也没有默认值分配,然后如何使用uisngLINQ将时间戳插入数据库? 问题答案: 我假设您的意思是您有一个表,该表的列具有Timesta

  • 我试图创建一个简单的表,但它给了我一个错误: 剧本: 我想不出这个问题,有人能帮忙吗?

  • 问题内容: 由于有几个版本,h2确实支持空间几何。 在Java中选择并插入几何图形不是问题。但是如何将它们插入纯sql中呢?文档显示它使用WKT。但是,当我尝试插入WKT时出现错误。 这是一个示例插入: 感谢您的提示! 问题答案: 据我所知,后缀不是WKT(知名文本),而是EWKT。 H2数据库当前不支持EWKT(扩展的知名文本)。您将不得不使用。一个完整的例子:

  • 问题内容: 这是我使用的代码 我试图在客户表中的TotalP字段中设置一个值x。值x等于“产品”表中“客户ID”相同的对应价格的总和。 上面的代码返回错误 问题答案: 您可以使用DSum: 但是,这确实引发了一个问题,即当可以从查询中获取信息时,为什么要使用计算值来更新表。