zoukankan      html  css  js  c++  java
  • Linq实现左连接、右连接

    --一本错误的记录

    insert into Book values('错误时怎样练成的',111)
     
    --左连接
    select s.name,b.name from student as s
    left join Book as b on s.id=b.studentid
     
    --右连接
    select s.name,b.name from student as s
    right join Book as b on s.id=b.studentid
     
     
    要用Linq实现左连接,写法如下     
    DataClasses1DataContext db = new DataClasses1DataContext();
                var leftJoinSql = from student in db.Student
                                  join book in db.Book on student.ID equals book.StudentID into temp
                                  from tt in temp.DefaultIfEmpty()
                                  select new
                                  {
                                       sname= student.Name,
                                       bname = tt==null?"":tt.Name//这里主要第二个集合有可能为空。需要判断
                                  };
     
    用Linq实现右连接,写法如下
    DataClasses1DataContext db=new DataClasses1DataContext();
                var rightJoinSql = from book in db.Book
                                   join stu in db.Student on book.StudentID equals stu.ID into joinTemp
                                   from tmp in joinTemp.DefaultIfEmpty()
                                   select new {
                                   sname=tmp==null?"":tmp.Name,
                                   bname=book.Name
     
                                   };

    1、左连接:

    var LeftJoin = from emp in ListOfEmployees
    join dept in ListOfDepartment
    on emp.DeptID equals dept.ID into JoinedEmpDept
    from dept in JoinedEmpDept.DefaultIfEmpty()
    select new                        
    {
    EmployeeName = emp.Name,
    DepartmentName = dept != null ? dept.Name : null                        
    };

     2、右连接:

    var RightJoin = from dept in ListOfDepartment
    join employee in ListOfEmployees
    on dept.ID equals employee.DeptID into joinDeptEmp
    from employee in joinDeptEmp.DefaultIfEmpty()
    select new                          
    {
    EmployeeName = employee != null ? employee.Name : null,
    DepartmentName = dept.Name
    };

     3、内连接:

     var query = from t in entitiy.TB_GCGL_ADA_USER
                     join p in entitiy.TB_GCGL_ZY_ZYK
                     on t.ETPRS_CODE equals p.ETPRS_CODE

                     select new TB_USER_ZYK
                     {
                        USER_ID = t.USER_ID,
                        USER_NAME = t.USER_NAME,
                        USER_PASSWORD = t.USER_PASSWORD,

                     };

  • 相关阅读:
    hack games
    Metasploit 使用简介
    Back Track5学习笔记
    Metasploit没有db_autopwn命令的解决办法
    BT5 set_config各个选项的配置
    c# 截屏
    c#图像计算知识
    游戏代码
    Google Protocol Buffers (一个客户端与服务器协议生成工具)
    WinPcap抓取数据包
  • 原文地址:https://www.cnblogs.com/turnip/p/12874161.html
Copyright © 2011-2022 走看看