7-5 多重查詢 Exists 連結
7-5-1 Exists 連結語法 只要子查詢語句傳回來不是空值的話,表示條件成立,而且上層查詢語句的 Where 條件敘述,與子查詢語句的Where 條件相同,基本語句如下:
或條件不存在(not exists),基本語法如下:
7-5-2 範例研討:查詢已開課教師 (A) 程式功能:Ex7_10 請製作一網頁,可查詢各系這學期已經排課的教師代碼與姓名,查詢網頁下:
查詢結果的網頁如下:
(B) SQL 製作技巧
全校所有開課課程登錄於 open_course 表內,由 teacher_ID 表示哪一位老師開這門課,我們由 department 查出系別代碼,再由 teachers 查出該系教師名冊,如果這些老師已存在 open_course 表內 (利用 Exists 連結),則表示他們已經排課,則印出它的教師編碼與姓名。其中比較特殊的是在 open_course 查詢中,條件須 teacher_ID = teachers.teacher_ID,表示是 teachers 表內的 teacher_ID 比較是否相符。SQL語法如下: (假設查詢『資訊管理系』。
(C) 網頁製作技巧 『表單網頁』製作下拉式選單由 department 表查詢出 Dep_ID,傳送給『執行網頁』,由它利用Exists 連結open_course查詢出結果,如下圖所示:
(D) 表單網頁:Ex7_10-form.php
(E) 接收與處理網頁:Ex7_10-action.php
7-5-3範例研討:查詢未選課學生 (A) 程式功能:Ex7_11 依系所名稱查詢這學期該系尚未選課學生的學號與姓名,『選單網頁』如下:
『執行網頁』查詢結果如下:
(B) SQL 製作技巧
由上圖可以看出,先查詢該系所有學生的 student_ID (由 department、class_ID 與 students 表),只要不存在於 select_course 表內,擇表示該學生還未選課,SQL語法如下: (假設查詢『資訊管理系』。
(C) 網頁製作技巧 『表單網頁』製作下拉式選單由 department 表查詢出 Dep_ID,傳送給『執行網頁』,由它利用Not Exists 連結classes、students、select_course查詢出結果,如下圖所示:
(D) 表單網頁:Ex7_11-form.php
(E) 接收與處理網頁:Ex7_11-action.php
|
翻轉工作室:粘添壽
資料庫程式設計:
翻轉電子書系列:
|