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裏面放的是我已經定義好了的字段,就是想要在頁面上顯示的字段,
在這裏插入圖片描述
爲什麼要定義?
在這裏插入圖片描述
不不不,你必須要定義這些字段,不然怎麼來接受這些數據啊
在這裏插入圖片描述
這個字段也不是說隨便定義吧,是什麼類型就是什麼類型的,門號對不上是會出錯的,這個數據類型是常識了。

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