5-3 多重子查詢 in 連結
內容:
5-3-1 子查詢 In 連結語法
如果第一次查詢出來的結果不只一個的話{如:value1, value2, …},就必須利用 in 語句來連結,表示所有數值都要執行一次。語句格式如下:
Select 欄位_1, 欄位_2, ..
From 表格
Where 欄位名稱 in (Select 欄位
From 表格
Where 條件判斷); |
5-3-2範例研討:列印選課名單
(A)程式功能:Ex5_3
請列印出修讀『資料庫管理系統』(開課代號 open_course_ID=1)學生名冊,結果如下:
(B)系統分析:
select student_ID
from select_course
where open_course_ID = '1';
|
Select class_ID, student_ID, name, sex
From students
Where student_ID in (40011111, 90209218, 90211233);
|
(C)程式範例:
吾人將上述兩個子查詢用 In 串接起來即可,如下:
Select class_ID, student_ID, name, sex
From students
Where student_ID in (Select student_ID
From select_course
Where open_course_ID = '1'); |
5-3-3範例研討:查詢系所開課課程
(A)程式功能:Ex5_4
請查詢『資訊管理系』這學期開了那些課程(課程代碼 courase_ID),結果如下:
(B)系統分析:
Select Dep_ID
From department
Where dep_name = '資訊管理系';
|
Select teacher_ID
From teachers
Where dep_ID = '11';
|
Select course_ID
From open_course
Where teacher_ID in (0107, 0108, 0113, 0114, 0116);
|
(C)程式範例:
吾人將上述三個子查詢用串接起來即可,如下:
Select course_ID as "課程代碼"
From open_course
Where teacher_ID in (Select teacher_ID
From teachers
Where Dep_ID = (Select Dep_ID
From department
Where dep_name = '資訊管理系')); |
5-3-4自我挑戰:查詢系所開課詳細資料
(A)程式功能:PM5_3
延續 Ex5_4,查詢『資訊管理系』這學期開了那些課程,但須顯示各課程的詳細資料,結果如下:
(B)重點提示:
吾人將得到的 course_ID,再由 all_course (全校課程資料) 中查出課程資料即可。
5-3-5自我挑戰:查詢班級開課資料
(A)程式功能:PM5_4
請查詢『進四資管二丙』這學期開了哪些課程,結果如下:
(B) 重點提示:
-
步驟 1:利用『進四資管二丙』(class_name) 由 classes 表中查詢出該班的代碼 class_ID。
-
步驟 2:再利用 class_ID 由 open_course 表中查詢出該班這學期開了哪些課程的課程代碼 course_ID (多筆資料)。
-
步驟 3:將每一個 course_ID 由 all_course 表中查詢出該課程的詳細資料。
5-3-6自我挑戰:查詢課程教師
(A)程式功能:PM5_5
查詢這學期開『資料庫管理系統』課程有哪幾位老師的姓名,結果如下:
(B)重點提示:
-
步驟 1:利用『資料庫管理系統』( course_name) 由 all_course 表中查詢出該課程的代碼 course_ID。
-
步驟 2:再利用 course_ID 由 open_course 表中查詢出有哪些老師開此課程的教師代碼 teacher_ID(多筆資料)。
-
步驟 3:將每一個 teacher_ID 由 teachers 表中查詢出該教師的姓名(name)。
|
翻轉工作室:粘添壽
資料庫系統概論(含邏輯設計)
翻轉電子書系列:
|