LINQ查询(二):联合查询

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

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里面放的是我已经定义好了的字段,就是想要在页面上显示的字段,
在这里插入图片描述
为什么要定义?
在这里插入图片描述
不不不,你必须要定义这些字段,不然怎么来接受这些数据啊
在这里插入图片描述
这个字段也不是说随便定义吧,是什么类型就是什么类型的,门号对不上是会出错的,这个数据类型是常识了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章