
- MS Access 教程
- MS Access - 首頁
- MS Access - 概述
- MS Access - 關係資料庫管理系統 (RDBMS)
- MS Access - 物件
- MS Access - 建立資料庫
- MS Access - 資料型別
- MS Access - 建立表
- MS Access - 新增資料
- MS Access - 查詢資料
- MS Access - 查詢條件
- MS Access - 操作查詢
- MS Access - 建立查詢
- MS Access - 引數查詢
- MS Access - 替代條件
- MS Access - 關聯資料
- MS Access - 建立關係
- 一對一關係
- 一對多關係
- 多對多關係
- MS Access - 萬用字元
- MS Access - 計算表示式
- MS Access - 建立索引
- MS Access - 分組資料
- MS Access - 資料彙總
- MS Access - 聯接
- MS Access - 重複記錄查詢嚮導
- 不匹配記錄查詢嚮導
- MS Access - 建立窗體
- MS Access - 修改窗體
- MS Access - 導航窗體
- MS Access - 組合框
- MS Access - SQL 檢視
- MS Access - 格式設定
- MS Access - 控制元件和屬性
- MS Access - 報表基礎
- MS Access - 報表格式設定
- MS Access - 內建函式
- MS Access - 宏
- MS Access - 資料匯入
- MS Access - 資料匯出
- MS Access 有用資源
- MS Access - 快速指南
- MS Access - 有用資源
- MS Access - 討論
MS Access - 聯接
資料庫是由多個數據表組成的集合,這些表之間存在邏輯關係。您可以使用關係透過它們共有的欄位連線表。一個表可以屬於任意數量的關係,但每個關係總是恰好包含兩個表。在查詢中,關係由聯接表示。
什麼是聯接
聯接指定如何組合資料庫中來自兩個或多個表中的記錄。從概念上講,聯接與表關係非常相似。事實上,聯接之於查詢,如同關係之於表。
本章將討論以下兩種基本的聯接型別:
- 內部聯接
- 外部聯接
這兩種聯接都可以輕鬆地透過查詢設計檢視建立。
內部聯接
現在讓我們瞭解內部聯接:
- 最常見的聯接型別是內部聯接,它也是 Microsoft Access 中的預設聯接型別。
- 內部聯接僅顯示兩個表中聯接欄位相等的那些行或記錄。
- 此聯接型別檢視那些公共欄位及其包含的資料。它只顯示匹配項。

外部聯接
現在讓我們瞭解外部聯接:
- 外部聯接顯示一個表中的所有行,以及另一個表中聯接欄位相等的那些行或記錄。
- 換句話說,外部聯接顯示一個表中的所有行以及另一個表中對應的行。

還有其他聯接型別:
左外部聯接和右外部聯接
現在讓我們瞭解左外部聯接和右外部聯接:
- 您可以選擇將顯示所有行的表。
- 您可以建立一個左外部聯接,它將包含第一個表中的所有行。

- 您可以建立一個右外部聯接,它將包含第二個表中的所有行。

現在讓我們轉到“建立”選項卡,並從設計檢視建立一個查詢。選擇tblProjects和tblTasks,然後關閉“顯示錶”對話方塊,如下圖所示。

新增來自tblProjects表的ProjectName欄位,以及來自tblTasks表的TaskTitle、StartDate和DueDate欄位。

現在讓我們執行查詢。

我們只顯示了少數幾個專案的記錄。其中一些專案有很多與該專案相關的任務,這些資訊透過ProjectID欄位相關聯。
當我們在 Microsoft Access 中建立此查詢時,Access 將使用我們建立的關係。
預設情況下,它建立的是所謂的這兩個欄位之間的內部聯接,這兩個表之間的內部聯接,這就是它如何將這兩個表中的資訊關聯起來的方式。
它只向我們顯示匹配項,因此當我們執行此查詢時,tblProjects中列出的許多其他專案不會顯示為我們此查詢記錄集的一部分,這是因為這兩個表是如何透過內部聯接連線在一起的,而內部聯接又是任何查詢的預設聯接。
但是,如果您想更改關係,假設您想建立一個外部聯接,或者換句話說,顯示tblProjects中的所有專案,該表中的每個記錄,以及tblTasks中的所有任務 - 開啟聯接屬性;我們可以透過雙擊關係線來簡單地做到這一點。

Access 將在“聯接屬性”對話方塊中顯示左表名和右表名。
左列名和右列名,第一個單選按鈕是隻包含兩個表中聯接欄位相等的那些行,這就是內部聯接,這是在建立關係時,在查詢中建立聯接時預設選擇的,但是,您可以更改它。
我們還有另外兩個選項;我們可以包含tblProjects中的所有記錄,以及tblTasks中聯接欄位相等的那些記錄,這是一個左外部聯接。
我們還有一個選項,包含tblTasks中的所有記錄,以及tblProjects中聯接欄位相等的那些記錄,這是一個右外部聯接。
這些就是您可以輕鬆地從設計檢視建立的不同型別的聯接。讓我們選擇第二個選項,即左外部聯接,然後單擊確定。
現在讓我們看看其他步驟:

當您檢視關係線時,您將看到一個指向tblTasks中ProjectID的小箭頭。當您執行此查詢時,您將看到以下結果。

您可以看到它向我們顯示了每個專案名稱,無論它是否具有相關的任務。您還將看到一堆空欄位。所有這些都將為空白,因為在tblTasks中沒有相關資訊,而這些欄位來自那裡。現在讓我們再次轉到設計檢視並雙擊關係線。

在“聯接屬性”對話方塊中,選擇第三個選項,即右外部聯接,然後單擊確定。

現在看看我們的關係線。您將看到一個小箭頭現在指向tblProjects中的ProjectID。當您執行此查詢時,您將看到以下結果。

自聯接
自聯接是另一種型別的聯接。自聯接關聯同一表中匹配的欄位。例如,檢視包含主管欄位的員工表,該欄位引用同一表中另一個欄位(員工 ID)中儲存的相同型別的編號。

如果我們想知道 Kaitlin Rasmussen 的主管是誰,我們將不得不獲取該主管欄位中儲存的編號,並在同一表的員工 ID 欄位中查詢它,以便知道 Charity Hendricks 是主管。
此表不是關係資料庫的理想結構,因為它沒有規範化。
如果我們遇到要建立一個查詢的情況,該查詢只列出員工姓名及其主管的姓名,那麼除非我們建立一個自聯接,否則我們沒有簡單的查詢方法。
要檢視自聯接,請建立一個包含以下欄位的表並輸入一些資料。

在這裡,我們想再次建立一個列表,其中包含員工的姓名,然後是主管的姓名。讓我們從查詢設計檢視建立一個查詢。
現在,新增tblEmployees表。

關閉此對話方塊。
現在,新增員工的姓名。

現在我們需要一種方法來建立此表與其自身之間的關係。為此,我們需要開啟顯示錶對話方塊並再次新增 tblEmployees。

我們在該查詢檢視中建立了同一表的另一個副本。現在,我們需要建立自聯接。為此,請單擊tblEmployees表中的主管,按住滑鼠按鈕,然後將其直接拖放到複製的表tblEmployees_1中的EmployeeID之上。然後,新增該複製表中的姓名。

現在讓我們執行您的查詢,您將看到以下結果。

它顯示了員工的姓名以及他們主管的姓名。這就是您在 Microsoft Access 中建立自聯接的方式。