LINQ查询(二):联合查询

在以前已经给你们简单的介绍了单表查询,可是每每在页面上要显示的信息是不单单只来源于一个表的。简单的举个例子,一个学生的我的信息,是来源学生表,可是也想知道他是哪个学校的,读的什么专业,哪个年级哪个班的,这样的话,牵涉到的就不仅是学生表了,还有专业表年级表班级表等等,这么多个表,那岂不是要写不少个查询语句?No,一个就够了,这个时候就须要用到咱们的联合查询。
咱们先来看下这三个表:PW_Student(学生表),SYS_Grade(年级表),SYS_Academe(学院表)
在这里插入图片描述
能够看到它们之间时经过主键ID链接在一块儿的。把鼠标放上去能够看到有个提示,INNER JOIN :PW_Student.AcademeID = SYS_Academe.AcademeID。
废话少说,说重点,怎么写联合查询,很是简单,四个单词搞定:join(这里放你自定义的表名字b) in(具体表名) on (表a的哪一个字段)equals(链接表b的相同字段)。web

public ActionResult Select()
        {
            var Students = (from tbStudent in myModel.PW_Student
                            join tbAcademe in myModel.SYS_Academe on tbStudent.AcademeID equals tbAcademe.AcademeID
                            join tbGrade in myModel.SYS_Grade on tbStudent.GradeID equals tbGrade.GradeID
                          select new
                            {
                                StudentName = tbStudent.StudentName,
                                AcademeName = tbAcademe.AcademeName,
                                GradeName = tbGrade.GradeName
                            }).ToList();
            return Json(Students, JsonRequestBehavior.AllowGet);
        }

若是还想查询更多表的信息,也是在后面再加上去就好了,一些刚开始学习MVC的人看到一些又臭又长的查询语句就以为很头大,其实没什么好怕的,解剖开来也就那么一回事,结构很是的简单。
最后还要说明一下,这个Select new里面放的是我已经定义好了的字段,就是想要在页面上显示的字段,
在这里插入图片描述
为何要定义?
在这里插入图片描述
不不不,你必需要定义这些字段,否则怎么来接受这些数据啊
在这里插入图片描述
这个字段也不是说随便定义吧,是什么类型就是什么类型的,门号对不上是会出错的,这个数据类型是常识了。svg