在數個表中查詢

前頁 目錄 下頁

我們可以在多於一個表中查詢,通常這些表分享一個字節。

這樣的查詢也是用 SELECT 語句去做,而語法和一個表的查詢一樣。不過,字段的名稱必須包括表的名稱(寫成 <表的名稱>.<字段名稱>),以防混淆。

以下例子展示如何在數個表中查詢(按這��看看 s6a 及 books 兩表的內容)。

從 s6a 及 books 兩表中拿取學生姓名、書的索書號及還書日期,其中 s6a 的學生編號和 books 的學生編號一樣,以及還書日期是在一九九九年十一月十五日前。把這些項目依還書日期由先至後排序。
SELECT s6a.name, books.call_id, books.due_date FROM s6a, books
  WHERE s6a.stud_id = books.stud_id AND books.due_date < {11/15/99}
  ORDER BY books.due_date ASC
輸出︰
name call_id due_date
Sung Hing Wah, Patrick 845678 10/20/1999
Chan Lai Yin 811141 10/24/1999
Yeung Chun 904568 10/29/1999
Lai Fung Chun 899554 10/30/1999
Fung Ching Man, Mandy 844221 10/31/1999
Yeung Chun 821344 11/01/1999
Chow Chi Ling 812112 11/01/1999
Poon Kwok Fai 853222 11/01/1999
Tang Wing Chi 887656 11/04/1999
Wong Ka Tak, Kent 844355 11/09/1999
Chan Wai Man, Raymond 804356 11/09/1999
Tang Wing Chi 891111 11/11/1999
Leung King 899943 11/12/1999
Lee Lai May 811332 11/13/1999
Hung Wai Ming 804890 11/14/1999
Yeung Chun 845223 11/14/1999
 
從 s6a 及 books 兩表中拿取學生姓名、書的索書號、電郵地址及還書日期,其中 s6a 的學生編號和 books 的學生編號一樣,以及還書日期是在一九九九年十一月一日前。把這些項目依還書日期由後至先排序。

Retrieve the students' names, books' Call IDs, email addresses and due dates from the tables s6a and books where the Student ID in s6a is the same as that in books and the due date is before November 1, 1999. List these items in desscending order of the due dates.

SELECT s6a.name, s6a.email, books.call_id, books.due_date FROM s6a, books
  WHERE s6a.stud_id = books.stud_id AND books.due_date < {11/01/99}
  ORDER BY books.due_date DESC
Output:
name

email

call_id due_date
Fung Ching Man, Mandy mandyfung@example.com 844221 10/31/1999
Lai Fung Chun s96374@sample.edu.hk 899554 10/30/1999
Yeung Chun cyeung@testing.com.hk 904568 10/29/1999
Chan Lai Yin cly@testing.com.hk 811141 10/24/1999
Sung Hing Wah, Patrick patricksung@example.com 845678 10/20/1999