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,

                     };

  • 相关阅读:
    060821流水账
    060721流水账
    060421流水账
    [Tips] 更新oh my zsh
    [Tips] updraftplus备份wordpress
    [Tips] SSH免密登陆
    [Notes] 基于阿里云的SSL在容器化wordpress中部署https服务
    [Tips] wordpress添加文章计数
    [Notes] 容器化部署wordpress
    [Notes] pandas 保存hdf5时numpy array遇到的性能warning
  • 原文地址:https://www.cnblogs.com/turnip/p/12874161.html
Copyright © 2011-2022 走看看